Loading net/sunrpc/clnt.c +4 −0 Original line number Original line Diff line number Diff line Loading @@ -1746,6 +1746,7 @@ call_bind_status(struct rpc_task *task) case -EHOSTDOWN: case -EHOSTDOWN: case -EHOSTUNREACH: case -EHOSTUNREACH: case -ENETUNREACH: case -ENETUNREACH: case -ENOBUFS: case -EPIPE: case -EPIPE: dprintk("RPC: %5u remote rpcbind unreachable: %d\n", dprintk("RPC: %5u remote rpcbind unreachable: %d\n", task->tk_pid, task->tk_status); task->tk_pid, task->tk_status); Loading Loading @@ -1812,6 +1813,7 @@ call_connect_status(struct rpc_task *task) case -ECONNABORTED: case -ECONNABORTED: case -ENETUNREACH: case -ENETUNREACH: case -EHOSTUNREACH: case -EHOSTUNREACH: case -ENOBUFS: if (RPC_IS_SOFTCONN(task)) if (RPC_IS_SOFTCONN(task)) break; break; /* retry with existing socket, after a delay */ /* retry with existing socket, after a delay */ Loading Loading @@ -1918,6 +1920,7 @@ call_transmit_status(struct rpc_task *task) case -ECONNRESET: case -ECONNRESET: case -ECONNABORTED: case -ECONNABORTED: case -ENOTCONN: case -ENOTCONN: case -ENOBUFS: case -EPIPE: case -EPIPE: rpc_task_force_reencode(task); rpc_task_force_reencode(task); } } Loading Loading @@ -2034,6 +2037,7 @@ call_status(struct rpc_task *task) case -ECONNRESET: case -ECONNRESET: case -ECONNABORTED: case -ECONNABORTED: rpc_force_rebind(clnt); rpc_force_rebind(clnt); case -ENOBUFS: rpc_delay(task, 3*HZ); rpc_delay(task, 3*HZ); case -EPIPE: case -EPIPE: case -ENOTCONN: case -ENOTCONN: Loading net/sunrpc/xprtsock.c +5 −0 Original line number Original line Diff line number Diff line Loading @@ -594,6 +594,7 @@ static int xs_local_send_request(struct rpc_task *task) } } switch (status) { switch (status) { case -ENOBUFS: case -EAGAIN: case -EAGAIN: status = xs_nospace(task); status = xs_nospace(task); break; break; Loading Loading @@ -661,6 +662,7 @@ static int xs_udp_send_request(struct rpc_task *task) dprintk("RPC: sendmsg returned unrecognized error %d\n", dprintk("RPC: sendmsg returned unrecognized error %d\n", -status); -status); case -ENETUNREACH: case -ENETUNREACH: case -ENOBUFS: case -EPIPE: case -EPIPE: case -ECONNREFUSED: case -ECONNREFUSED: /* When the server has died, an ICMP port unreachable message /* When the server has died, an ICMP port unreachable message Loading Loading @@ -758,6 +760,7 @@ static int xs_tcp_send_request(struct rpc_task *task) status = -ENOTCONN; status = -ENOTCONN; /* Should we call xs_close() here? */ /* Should we call xs_close() here? */ break; break; case -ENOBUFS: case -EAGAIN: case -EAGAIN: status = xs_nospace(task); status = xs_nospace(task); break; break; Loading Loading @@ -1946,6 +1949,7 @@ static int xs_local_setup_socket(struct sock_xprt *transport) dprintk("RPC: xprt %p connected to %s\n", dprintk("RPC: xprt %p connected to %s\n", xprt, xprt->address_strings[RPC_DISPLAY_ADDR]); xprt, xprt->address_strings[RPC_DISPLAY_ADDR]); xprt_set_connected(xprt); xprt_set_connected(xprt); case -ENOBUFS: break; break; case -ENOENT: case -ENOENT: dprintk("RPC: xprt %p: socket %s does not exist\n", dprintk("RPC: xprt %p: socket %s does not exist\n", Loading Loading @@ -2281,6 +2285,7 @@ static void xs_tcp_setup_socket(struct work_struct *work) case -ECONNREFUSED: case -ECONNREFUSED: case -ECONNRESET: case -ECONNRESET: case -ENETUNREACH: case -ENETUNREACH: case -ENOBUFS: /* retry with existing socket, after a delay */ /* retry with existing socket, after a delay */ goto out; goto out; } } Loading Loading
net/sunrpc/clnt.c +4 −0 Original line number Original line Diff line number Diff line Loading @@ -1746,6 +1746,7 @@ call_bind_status(struct rpc_task *task) case -EHOSTDOWN: case -EHOSTDOWN: case -EHOSTUNREACH: case -EHOSTUNREACH: case -ENETUNREACH: case -ENETUNREACH: case -ENOBUFS: case -EPIPE: case -EPIPE: dprintk("RPC: %5u remote rpcbind unreachable: %d\n", dprintk("RPC: %5u remote rpcbind unreachable: %d\n", task->tk_pid, task->tk_status); task->tk_pid, task->tk_status); Loading Loading @@ -1812,6 +1813,7 @@ call_connect_status(struct rpc_task *task) case -ECONNABORTED: case -ECONNABORTED: case -ENETUNREACH: case -ENETUNREACH: case -EHOSTUNREACH: case -EHOSTUNREACH: case -ENOBUFS: if (RPC_IS_SOFTCONN(task)) if (RPC_IS_SOFTCONN(task)) break; break; /* retry with existing socket, after a delay */ /* retry with existing socket, after a delay */ Loading Loading @@ -1918,6 +1920,7 @@ call_transmit_status(struct rpc_task *task) case -ECONNRESET: case -ECONNRESET: case -ECONNABORTED: case -ECONNABORTED: case -ENOTCONN: case -ENOTCONN: case -ENOBUFS: case -EPIPE: case -EPIPE: rpc_task_force_reencode(task); rpc_task_force_reencode(task); } } Loading Loading @@ -2034,6 +2037,7 @@ call_status(struct rpc_task *task) case -ECONNRESET: case -ECONNRESET: case -ECONNABORTED: case -ECONNABORTED: rpc_force_rebind(clnt); rpc_force_rebind(clnt); case -ENOBUFS: rpc_delay(task, 3*HZ); rpc_delay(task, 3*HZ); case -EPIPE: case -EPIPE: case -ENOTCONN: case -ENOTCONN: Loading
net/sunrpc/xprtsock.c +5 −0 Original line number Original line Diff line number Diff line Loading @@ -594,6 +594,7 @@ static int xs_local_send_request(struct rpc_task *task) } } switch (status) { switch (status) { case -ENOBUFS: case -EAGAIN: case -EAGAIN: status = xs_nospace(task); status = xs_nospace(task); break; break; Loading Loading @@ -661,6 +662,7 @@ static int xs_udp_send_request(struct rpc_task *task) dprintk("RPC: sendmsg returned unrecognized error %d\n", dprintk("RPC: sendmsg returned unrecognized error %d\n", -status); -status); case -ENETUNREACH: case -ENETUNREACH: case -ENOBUFS: case -EPIPE: case -EPIPE: case -ECONNREFUSED: case -ECONNREFUSED: /* When the server has died, an ICMP port unreachable message /* When the server has died, an ICMP port unreachable message Loading Loading @@ -758,6 +760,7 @@ static int xs_tcp_send_request(struct rpc_task *task) status = -ENOTCONN; status = -ENOTCONN; /* Should we call xs_close() here? */ /* Should we call xs_close() here? */ break; break; case -ENOBUFS: case -EAGAIN: case -EAGAIN: status = xs_nospace(task); status = xs_nospace(task); break; break; Loading Loading @@ -1946,6 +1949,7 @@ static int xs_local_setup_socket(struct sock_xprt *transport) dprintk("RPC: xprt %p connected to %s\n", dprintk("RPC: xprt %p connected to %s\n", xprt, xprt->address_strings[RPC_DISPLAY_ADDR]); xprt, xprt->address_strings[RPC_DISPLAY_ADDR]); xprt_set_connected(xprt); xprt_set_connected(xprt); case -ENOBUFS: break; break; case -ENOENT: case -ENOENT: dprintk("RPC: xprt %p: socket %s does not exist\n", dprintk("RPC: xprt %p: socket %s does not exist\n", Loading Loading @@ -2281,6 +2285,7 @@ static void xs_tcp_setup_socket(struct work_struct *work) case -ECONNREFUSED: case -ECONNREFUSED: case -ECONNRESET: case -ECONNRESET: case -ENETUNREACH: case -ENETUNREACH: case -ENOBUFS: /* retry with existing socket, after a delay */ /* retry with existing socket, after a delay */ goto out; goto out; } } Loading