CIFS: Indicate reconnect with ECONNABORTED error code
authorPavel Shilovsky <pshilovsky@samba.org>
Thu, 10 Jul 2014 05:55:52 +0000 (09:55 +0400)
committerSteve French <smfrench@gmail.com>
Sat, 2 Aug 2014 06:23:03 +0000 (01:23 -0500)
that let us not mix it with EAGAIN.

Signed-off-by: Pavel Shilovsky <pshilovsky@samba.org>
Signed-off-by: Steve French <smfrench@gmail.com>
fs/cifs/connect.c
fs/cifs/file.c

index 20d75b8ddb26a815c8c21fcea9639a5d48e909a8..b0427f6ea97135a3fe056688023ed842a17efb92 100644 (file)
@@ -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 */
index ebdeb56f8d30a905f19cae556ef7620f70daaef6..9582ded2332e763d52c86e7d268b1fbd726a6ce1 100644 (file)
@@ -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