Commit 6981b468 authored by NeilBrown's avatar NeilBrown Committed by ZhaoLong Wang
Browse files

SUNRPC: don't pause on incomplete allocation

mainline inclusion
from mainline-v5.15-rc1
commit e38b3f20
category: bugfix
bugzilla: https://gitee.com/openeuler/kernel/issues/I7RRY4
CVE: NA

Reference: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=e38b3f20059426a0adbde014ff71071739ab5226



-------------------------------------------------

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: default avatarMike Javorski <mike.javorski@gmail.com>
Reported-and-tested-by: default avatarLothar Paltins <lopa@mailbox.org>
Fixes: f6e70aab ("SUNRPC: refresh rq_pages using a bulk page allocator")
Signed-off-by: default avatarNeilBrown <neilb@suse.de>
Acked-by: default avatarMel Gorman <mgorman@suse.com>
Signed-off-by: default avatarChuck Lever <chuck.lever@oracle.com>
Signed-off-by: default avatarZhaoLong Wang <wangzhaolong1@huawei.com>

Conflicts:
    net/sunrpc/svc_xprt.c
parent 829ecc1d
Loading
Loading
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment