summaryrefslogtreecommitdiff
path: root/fs/smb/client/readdir.c
diff options
context:
space:
mode:
Diffstat (limited to 'fs/smb/client/readdir.c')
-rw-r--r--fs/smb/client/readdir.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/fs/smb/client/readdir.c b/fs/smb/client/readdir.c
index 1311caa93fee..07aa3cb0c4a6 100644
--- a/fs/smb/client/readdir.c
+++ b/fs/smb/client/readdir.c
@@ -963,6 +963,10 @@ int cifs_readdir(struct file *file, struct dir_context *ctx)
if (!cdir) {
pr_err("%s: (1) cdir not found for path='%s' (unexpected because remote open)\n", __func__, full_path);
goto cache_not_found;
+ } else if (IS_ERR(cdir)) {
+ rc = PTR_ERR(cdir);
+ cdir = NULL;
+ goto rddir2_exit;
}
if (!cached_dir_emit_entries(cdir, ctx, file))
@@ -1017,6 +1021,10 @@ int cifs_readdir(struct file *file, struct dir_context *ctx)
if (!cdir) {
pr_err("%s: (2) cdir not found for path='%s' (unexpected because remote open)\n", __func__, full_path);
goto rddir2_exit;
+ } else if (IS_ERR(cdir)) {
+ rc = PTR_ERR(cdir);
+ cdir = NULL;
+ goto rddir2_exit;
}
if (!current_entry) {