SUNRPC: Convert GFP_NOFS to GFP_KERNEL
authorTrond Myklebust <trond.myklebust@hammerspace.com>
Sat, 29 Jan 2022 17:49:44 +0000 (12:49 -0500)
committerTrond Myklebust <trond.myklebust@hammerspace.com>
Fri, 25 Feb 2022 23:50:12 +0000 (18:50 -0500)
The sections which should not re-enter the filesystem are already
protected with memalloc_nofs_save/restore calls, so it is better to use
GFP_KERNEL in these calls to allow better performance for synchronous
RPC calls.

Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com>
net/sunrpc/auth_unix.c
net/sunrpc/clnt.c
net/sunrpc/rpcb_clnt.c
net/sunrpc/sched.c
net/sunrpc/xprt.c

index e7df1f7..3600d86 100644 (file)
@@ -43,7 +43,7 @@ unx_destroy(struct rpc_auth *auth)
 static struct rpc_cred *
 unx_lookup_cred(struct rpc_auth *auth, struct auth_cred *acred, int flags)
 {
-       struct rpc_cred *ret = mempool_alloc(unix_pool, GFP_NOFS);
+       struct rpc_cred *ret = mempool_alloc(unix_pool, GFP_KERNEL);
 
        rpcauth_init_cred(ret, acred, auth, &unix_credops);
        ret->cr_flags = 1UL << RPCAUTH_CRED_UPTODATE;
index c83fe61..97165a5 100644 (file)
@@ -2793,7 +2793,7 @@ int rpc_clnt_test_and_add_xprt(struct rpc_clnt *clnt,
                return -EINVAL;
        }
 
-       data = kmalloc(sizeof(*data), GFP_NOFS);
+       data = kmalloc(sizeof(*data), GFP_KERNEL);
        if (!data)
                return -ENOMEM;
        data->xps = xprt_switch_get(xps);
index 647b323..0fdeb86 100644 (file)
@@ -714,7 +714,7 @@ void rpcb_getport_async(struct rpc_task *task)
                goto bailout_nofree;
        }
 
-       map = kzalloc(sizeof(struct rpcbind_args), GFP_NOFS);
+       map = kzalloc(sizeof(struct rpcbind_args), GFP_KERNEL);
        if (!map) {
                status = -ENOMEM;
                goto bailout_release_client;
@@ -730,7 +730,7 @@ void rpcb_getport_async(struct rpc_task *task)
        case RPCBVERS_4:
        case RPCBVERS_3:
                map->r_netid = xprt->address_strings[RPC_DISPLAY_NETID];
-               map->r_addr = rpc_sockaddr2uaddr(sap, GFP_NOFS);
+               map->r_addr = rpc_sockaddr2uaddr(sap, GFP_KERNEL);
                if (!map->r_addr) {
                        status = -ENOMEM;
                        goto bailout_free_args;
index e2c8354..52769b8 100644 (file)
@@ -1021,7 +1021,7 @@ int rpc_malloc(struct rpc_task *task)
        struct rpc_rqst *rqst = task->tk_rqstp;
        size_t size = rqst->rq_callsize + rqst->rq_rcvsize;
        struct rpc_buffer *buf;
-       gfp_t gfp = GFP_NOFS;
+       gfp_t gfp = GFP_KERNEL;
 
        if (RPC_IS_SWAPPER(task))
                gfp = __GFP_MEMALLOC | GFP_NOWAIT | __GFP_NOWARN;
@@ -1095,7 +1095,7 @@ static void rpc_init_task(struct rpc_task *task, const struct rpc_task_setup *ta
 static struct rpc_task *
 rpc_alloc_task(void)
 {
-       return (struct rpc_task *)mempool_alloc(rpc_task_mempool, GFP_NOFS);
+       return (struct rpc_task *)mempool_alloc(rpc_task_mempool, GFP_KERNEL);
 }
 
 /*
index a02de2b..9f0025e 100644 (file)
@@ -1692,7 +1692,7 @@ static struct rpc_rqst *xprt_dynamic_alloc_slot(struct rpc_xprt *xprt)
                goto out;
        ++xprt->num_reqs;
        spin_unlock(&xprt->reserve_lock);
-       req = kzalloc(sizeof(struct rpc_rqst), GFP_NOFS);
+       req = kzalloc(sizeof(struct rpc_rqst), GFP_KERNEL);
        spin_lock(&xprt->reserve_lock);
        if (req != NULL)
                goto out;