diff options
author | Pavel Shilovsky <pshilovsky@samba.org> | 2014-07-10 07:55:52 +0200 |
---|---|---|
committer | Steve French <smfrench@gmail.com> | 2014-08-02 08:23:03 +0200 |
commit | 3fabaa274635231c01f3bd0d10c4d353aa200673 (patch) | |
tree | 31a8dec458489d823ce552cf660ec2e915aeb913 /fs/cifs | |
parent | CIFS: Use multicredits for SMB 2.1/3 reads (diff) | |
download | linux-3fabaa274635231c01f3bd0d10c4d353aa200673.tar.xz linux-3fabaa274635231c01f3bd0d10c4d353aa200673.zip |
CIFS: Indicate reconnect with ECONNABORTED error code
that let us not mix it with EAGAIN.
Signed-off-by: Pavel Shilovsky <pshilovsky@samba.org>
Signed-off-by: Steve French <smfrench@gmail.com>
Diffstat (limited to 'fs/cifs')
-rw-r--r-- | fs/cifs/connect.c | 8 | ||||
-rw-r--r-- | fs/cifs/file.c | 4 |
2 files changed, 6 insertions, 6 deletions
diff --git a/fs/cifs/connect.c b/fs/cifs/connect.c index 20d75b8ddb26..b0427f6ea971 100644 --- a/fs/cifs/connect.c +++ b/fs/cifs/connect.c @@ -557,7 +557,7 @@ cifs_readv_from_socket(struct TCP_Server_Info *server, struct kvec *iov_orig, try_to_freeze(); if (server_unresponsive(server)) { - total_read = -EAGAIN; + total_read = -ECONNABORTED; break; } @@ -571,7 +571,7 @@ cifs_readv_from_socket(struct TCP_Server_Info *server, struct kvec *iov_orig, break; } else if (server->tcpStatus == CifsNeedReconnect) { cifs_reconnect(server); - total_read = -EAGAIN; + total_read = -ECONNABORTED; break; } else if (length == -ERESTARTSYS || length == -EAGAIN || @@ -588,7 +588,7 @@ cifs_readv_from_socket(struct TCP_Server_Info *server, struct kvec *iov_orig, cifs_dbg(FYI, "Received no data or error: expecting %d\n" "got %d", to_read, length); cifs_reconnect(server); - total_read = -EAGAIN; + total_read = -ECONNABORTED; break; } } @@ -786,7 +786,7 @@ standard_receive3(struct TCP_Server_Info *server, struct mid_q_entry *mid) cifs_dbg(VFS, "SMB response too long (%u bytes)\n", pdu_length); cifs_reconnect(server); wake_up(&server->response_q); - return -EAGAIN; + return -ECONNABORTED; } /* switch to large buffer if too big for a small one */ diff --git a/fs/cifs/file.c b/fs/cifs/file.c index ebdeb56f8d30..9582ded2332e 100644 --- a/fs/cifs/file.c +++ b/fs/cifs/file.c @@ -2909,7 +2909,7 @@ cifs_uncached_read_into_pages(struct TCP_Server_Info *server, total_read += result; } - return total_read > 0 && result != -EAGAIN ? total_read : result; + return total_read > 0 && result != -ECONNABORTED ? total_read : result; } static int @@ -3359,7 +3359,7 @@ cifs_readpages_read_into_pages(struct TCP_Server_Info *server, total_read += result; } - return total_read > 0 && result != -EAGAIN ? total_read : result; + return total_read > 0 && result != -ECONNABORTED ? total_read : result; } static int |