Commit 9d82819d authored by Trond Myklebust's avatar Trond Myklebust
Browse files

SUNRPC: Handle low memory situations in call_status()



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: b61d59ff ("SUNRPC: xs_tcp_connect_worker{4,6}: merge common code")
Signed-off-by: default avatarTrond Myklebust <trond.myklebust@hammerspace.com>
parent d3c15033
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -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;