summaryrefslogtreecommitdiff
path: root/fs/smb
diff options
context:
space:
mode:
authorShyam Prasad N <sprasad@microsoft.com>2024-01-21 03:32:46 +0000
committerSteve French <stfrench@microsoft.com>2024-01-23 20:23:28 -0600
commit64cc377b7628b81ffdbdb1c6bacfba895dcac3f8 (patch)
tree88c5b7abcf34ceea065540276163a01036ff8cee /fs/smb
parenta68106a6928e0a6680f12bcc7338c0dddcfe4d11 (diff)
cifs: helper function to check replayable error codes
The code to check for replay is not just -EAGAIN. In some cases, the send request or receive response may result in network errors, which we're now mapping to -ECONNABORTED. This change introduces a helper function which checks if the error returned in one of the above two errors. And all checks for replays will now use this helper. Signed-off-by: Shyam Prasad N <sprasad@microsoft.com> Signed-off-by: Steve French <stfrench@microsoft.com>
Diffstat (limited to 'fs/smb')
-rw-r--r--fs/smb/client/cached_dir.c1
-rw-r--r--fs/smb/client/cifsglob.h7
2 files changed, 8 insertions, 0 deletions
diff --git a/fs/smb/client/cached_dir.c b/fs/smb/client/cached_dir.c
index 971892620504..5730c65ffb40 100644
--- a/fs/smb/client/cached_dir.c
+++ b/fs/smb/client/cached_dir.c
@@ -367,6 +367,7 @@ out:
atomic_inc(&tcon->num_remote_opens);
}
kfree(utf16_path);
+
return rc;
}
diff --git a/fs/smb/client/cifsglob.h b/fs/smb/client/cifsglob.h
index dd12364ef372..4eb706e27c82 100644
--- a/fs/smb/client/cifsglob.h
+++ b/fs/smb/client/cifsglob.h
@@ -1830,6 +1830,13 @@ static inline bool is_retryable_error(int error)
return false;
}
+static inline bool is_replayable_error(int error)
+{
+ if (error == -EAGAIN || error == -ECONNABORTED)
+ return true;
+ return false;
+}
+
/* cifs_get_writable_file() flags */
#define FIND_WR_ANY 0