diff options
author | NeilBrown <neilb@suse.de> | 2014-09-23 21:28:32 -0400 |
---|---|---|
committer | Trond Myklebust <trond.myklebust@primarydata.com> | 2014-09-25 08:25:47 -0400 |
commit | 1aff52562939485e503936e17934be077ffaea53 (patch) | |
tree | 16dba0b5ce0005389ea045e29f69c6b65d133e32 /net/sunrpc/xprtrdma | |
parent | 353db7966288a2f18da22438aeec2b4862c0b241 (diff) |
NFS/SUNRPC: Remove other deadlock-avoidance mechanisms in nfs_release_page()
Now that nfs_release_page() doesn't block indefinitely, other deadlock
avoidance mechanisms aren't needed.
- it doesn't hurt for kswapd to block occasionally. If it doesn't
want to block it would clear __GFP_WAIT. The current_is_kswapd()
was only added to avoid deadlocks and we have a new approach for
that.
- memory allocation in the SUNRPC layer can very rarely try to
->releasepage() a page it is trying to handle. The deadlock
is removed as nfs_release_page() doesn't block indefinitely.
So we don't need to set PF_FSTRANS for sunrpc network operations any
more.
Signed-off-by: NeilBrown <neilb@suse.de>
Acked-by: Jeff Layton <jlayton@primarydata.com>
Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
Diffstat (limited to 'net/sunrpc/xprtrdma')
-rw-r--r-- | net/sunrpc/xprtrdma/transport.c | 2 |
1 files changed, 0 insertions, 2 deletions
diff --git a/net/sunrpc/xprtrdma/transport.c b/net/sunrpc/xprtrdma/transport.c index 2faac4940563..6a4615dd0261 100644 --- a/net/sunrpc/xprtrdma/transport.c +++ b/net/sunrpc/xprtrdma/transport.c | |||
@@ -205,7 +205,6 @@ xprt_rdma_connect_worker(struct work_struct *work) | |||
205 | struct rpc_xprt *xprt = &r_xprt->xprt; | 205 | struct rpc_xprt *xprt = &r_xprt->xprt; |
206 | int rc = 0; | 206 | int rc = 0; |
207 | 207 | ||
208 | current->flags |= PF_FSTRANS; | ||
209 | xprt_clear_connected(xprt); | 208 | xprt_clear_connected(xprt); |
210 | 209 | ||
211 | dprintk("RPC: %s: %sconnect\n", __func__, | 210 | dprintk("RPC: %s: %sconnect\n", __func__, |
@@ -216,7 +215,6 @@ xprt_rdma_connect_worker(struct work_struct *work) | |||
216 | 215 | ||
217 | dprintk("RPC: %s: exit\n", __func__); | 216 | dprintk("RPC: %s: exit\n", __func__); |
218 | xprt_clear_connecting(xprt); | 217 | xprt_clear_connecting(xprt); |
219 | current->flags &= ~PF_FSTRANS; | ||
220 | } | 218 | } |
221 | 219 | ||
222 | /* | 220 | /* |