summaryrefslogtreecommitdiffstats
path: root/fs
diff options
context:
space:
mode:
authorShyam Prasad N <sprasad@microsoft.com>2024-01-21 04:32:46 +0100
committerSteve French <stfrench@microsoft.com>2024-01-24 03:23:28 +0100
commit64cc377b7628b81ffdbdb1c6bacfba895dcac3f8 (patch)
tree88c5b7abcf34ceea065540276163a01036ff8cee /fs
parentcifs: translate network errors on send to -ECONNABORTED (diff)
downloadlinux-64cc377b7628b81ffdbdb1c6bacfba895dcac3f8.tar.xz
linux-64cc377b7628b81ffdbdb1c6bacfba895dcac3f8.zip
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')
-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