projects
/
linux.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
d3c1503
)
SUNRPC: Handle low memory situations in call_status()
author
Trond Myklebust
<trond.myklebust@hammerspace.com>
Thu, 7 Apr 2022 13:50:19 +0000
(09:50 -0400)
committer
Trond Myklebust
<trond.myklebust@hammerspace.com>
Thu, 7 Apr 2022 20:20:00 +0000
(16:20 -0400)
We need to handle ENFILE, ENOBUFS, and ENOMEM, because
xprt_wake_pending_tasks() can be called with any one of these due to
socket creation failures.
Fixes: b61d59fffd3e ("SUNRPC: xs_tcp_connect_worker{4,6}: merge common code")
Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com>
net/sunrpc/clnt.c
patch
|
blob
|
history
diff --git
a/net/sunrpc/clnt.c
b/net/sunrpc/clnt.c
index 07328f1d3885a2abd53ea4f1bbe34ce640cbeafa..6757b0fa5367c83e6623d1f725f35682d109c7d2 100644
(file)
--- a/
net/sunrpc/clnt.c
+++ b/
net/sunrpc/clnt.c
@@
-2367,6
+2367,11
@@
call_status(struct rpc_task *task)
case -EPIPE:
case -EAGAIN:
break;
+ case -ENFILE:
+ case -ENOBUFS:
+ case -ENOMEM:
+ rpc_delay(task, HZ>>2);
+ break;
case -EIO:
/* shutdown or soft timeout */
goto out_exit;