diff options
author | Shyam Prasad N <sprasad@microsoft.com> | 2024-01-21 04:32:46 +0100 |
---|---|---|
committer | Steve French <stfrench@microsoft.com> | 2024-01-24 03:23:28 +0100 |
commit | 64cc377b7628b81ffdbdb1c6bacfba895dcac3f8 (patch) | |
tree | 88c5b7abcf34ceea065540276163a01036ff8cee /fs | |
parent | cifs: translate network errors on send to -ECONNABORTED (diff) | |
download | linux-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.c | 1 | ||||
-rw-r--r-- | fs/smb/client/cifsglob.h | 7 |
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 |