summaryrefslogtreecommitdiffstats
path: root/fs/cifs
diff options
context:
space:
mode:
authorPavel Shilovsky <pshilovsky@samba.org>2014-07-10 07:55:52 +0200
committerSteve French <smfrench@gmail.com>2014-08-02 08:23:03 +0200
commit3fabaa274635231c01f3bd0d10c4d353aa200673 (patch)
tree31a8dec458489d823ce552cf660ec2e915aeb913 /fs/cifs
parentCIFS: Use multicredits for SMB 2.1/3 reads (diff)
downloadlinux-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.c8
-rw-r--r--fs/cifs/file.c4
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