aboutsummaryrefslogtreecommitdiffstats
path: root/net/sunrpc/sched.c
diff options
context:
space:
mode:
authorTrond Myklebust <trond.myklebust@hammerspace.com>2020-02-07 19:11:12 -0500
committerTrond Myklebust <trond.myklebust@hammerspace.com>2020-03-16 08:34:28 -0400
commit7eac52648a4c24ad23a05f62db97867c92a5747b (patch)
treeb728294741052a9f0bec6e94c6b4a3033eefeb58 /net/sunrpc/sched.c
parentNFS: alloc_nfs_open_context() must use the file cred when available (diff)
downloadlinux-dev-7eac52648a4c24ad23a05f62db97867c92a5747b.tar.xz
linux-dev-7eac52648a4c24ad23a05f62db97867c92a5747b.zip
SUNRPC: Add a flag to avoid reference counts on credentials
Add a flag to signal to the RPC layer that the credential is already pinned for the duration of the RPC call. Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com>
Diffstat (limited to 'net/sunrpc/sched.c')
-rw-r--r--net/sunrpc/sched.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/net/sunrpc/sched.c b/net/sunrpc/sched.c
index 55e900255b0c..6eff14119a88 100644
--- a/net/sunrpc/sched.c
+++ b/net/sunrpc/sched.c
@@ -1162,7 +1162,8 @@ static void rpc_release_resources_task(struct rpc_task *task)
{
xprt_release(task);
if (task->tk_msg.rpc_cred) {
- put_cred(task->tk_msg.rpc_cred);
+ if (!(task->tk_flags & RPC_TASK_CRED_NOREF))
+ put_cred(task->tk_msg.rpc_cred);
task->tk_msg.rpc_cred = NULL;
}
rpc_task_release_client(task);