summaryrefslogtreecommitdiffstats
path: root/net/sunrpc/socklib.c
diff options
context:
space:
mode:
authorChuck Lever <chuck.lever@oracle.com>2019-04-24 15:38:55 +0200
committerAnna Schumaker <Anna.Schumaker@Netapp.com>2019-04-25 20:58:35 +0200
commit52db6f9a0cd8f6d433a0687aae4f21f209352510 (patch)
tree1779463f87f34d5892508036a0f0410a7dc71f2a /net/sunrpc/socklib.c
parentFix nfs4.2 return -EINVAL when do dedupe operation (diff)
downloadlinux-52db6f9a0cd8f6d433a0687aae4f21f209352510.tar.xz
linux-52db6f9a0cd8f6d433a0687aae4f21f209352510.zip
SUNRPC: Avoid digging into the ATOMIC pool
Page allocation requests made when the SPARSE_PAGES flag is set are allowed to fail, and are not critical. No need to spend a rare resource. Signed-off-by: Chuck Lever <chuck.lever@oracle.com> Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com>
Diffstat (limited to 'net/sunrpc/socklib.c')
-rw-r--r--net/sunrpc/socklib.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/net/sunrpc/socklib.c b/net/sunrpc/socklib.c
index 7e55cfc69697..9faea12624a6 100644
--- a/net/sunrpc/socklib.c
+++ b/net/sunrpc/socklib.c
@@ -106,7 +106,7 @@ xdr_partial_copy_from_skb(struct xdr_buf *xdr, unsigned int base, struct xdr_skb
/* ACL likes to be lazy in allocating pages - ACLs
* are small by default but can get huge. */
if ((xdr->flags & XDRBUF_SPARSE_PAGES) && *ppage == NULL) {
- *ppage = alloc_page(GFP_ATOMIC);
+ *ppage = alloc_page(GFP_NOWAIT | __GFP_NOWARN);
if (unlikely(*ppage == NULL)) {
if (copied == 0)
copied = -ENOMEM;