Message ID | 1551829917-48772-4-git-send-email-pshilov@microsoft.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | more reconnect fixes | expand |
diff --git a/fs/cifs/transport.c b/fs/cifs/transport.c index 9c3a680..9f23a45 100644 --- a/fs/cifs/transport.c +++ b/fs/cifs/transport.c @@ -301,8 +301,9 @@ __smb_send_rqst(struct TCP_Server_Info *server, int num_rqst, rc = smbd_send(server, rqst); goto smbd_done; } + if (ssocket == NULL) - return -ENOTSOCK; + return -EAGAIN; /* cork the socket */ kernel_setsockopt(ssocket, SOL_TCP, TCP_CORK,
When we attempt to send a packet while the demultiplex thread is in the middle of cifs_reconnect() we may end up returning -ENOTSOCK to upper layers. The intent here is to retry the request once the TCP connection is up, so change it to return -EAGAIN instead. The latter error code is retryable and the upper layers will retry the request if needed. Signed-off-by: Pavel Shilovsky <pshilov@microsoft.com> --- fs/cifs/transport.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)