]> git.baikalelectronics.ru Git - kernel.git/commit
SUNRPC: don't pause on incomplete allocation
authorNeilBrown <neilb@suse.de>
Sun, 29 Aug 2021 22:36:34 +0000 (08:36 +1000)
committerChuck Lever <chuck.lever@oracle.com>
Wed, 1 Sep 2021 15:05:07 +0000 (11:05 -0400)
commit3dc9793480a6c6efaf442eff7dc3cd49f48aee6d
tree2df72c4a0c12be47a27ed11f22621d68eaee435b
parentd9a036eeb11e9a644c08211011b604393cb55d84
SUNRPC: don't pause on incomplete allocation

alloc_pages_bulk_array() attempts to allocate at least one page based on
the provided pages, and then opportunistically allocates more if that
can be done without dropping the spinlock.

So if it returns fewer than requested, that could just mean that it
needed to drop the lock.  In that case, try again immediately.

Only pause for a time if no progress could be made.

Reported-and-tested-by: Mike Javorski <mike.javorski@gmail.com>
Reported-and-tested-by: Lothar Paltins <lopa@mailbox.org>
Fixes: 70f05aa29988 ("SUNRPC: refresh rq_pages using a bulk page allocator")
Signed-off-by: NeilBrown <neilb@suse.de>
Acked-by: Mel Gorman <mgorman@suse.com>
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
net/sunrpc/svc_xprt.c