diff options
Diffstat (limited to 'net/sunrpc/clnt.c')
-rw-r--r-- | net/sunrpc/clnt.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/net/sunrpc/clnt.c b/net/sunrpc/clnt.c index b05df36692ff..fa48c60aef23 100644 --- a/net/sunrpc/clnt.c +++ b/net/sunrpc/clnt.c | |||
@@ -717,6 +717,15 @@ void rpc_task_set_client(struct rpc_task *task, struct rpc_clnt *clnt) | |||
717 | atomic_inc(&clnt->cl_count); | 717 | atomic_inc(&clnt->cl_count); |
718 | if (clnt->cl_softrtry) | 718 | if (clnt->cl_softrtry) |
719 | task->tk_flags |= RPC_TASK_SOFT; | 719 | task->tk_flags |= RPC_TASK_SOFT; |
720 | if (sk_memalloc_socks()) { | ||
721 | struct rpc_xprt *xprt; | ||
722 | |||
723 | rcu_read_lock(); | ||
724 | xprt = rcu_dereference(clnt->cl_xprt); | ||
725 | if (xprt->swapper) | ||
726 | task->tk_flags |= RPC_TASK_SWAPPER; | ||
727 | rcu_read_unlock(); | ||
728 | } | ||
720 | /* Add to the client's list of all tasks */ | 729 | /* Add to the client's list of all tasks */ |
721 | spin_lock(&clnt->cl_lock); | 730 | spin_lock(&clnt->cl_lock); |
722 | list_add_tail(&task->tk_task, &clnt->cl_tasks); | 731 | list_add_tail(&task->tk_task, &clnt->cl_tasks); |