summaryrefslogtreecommitdiff
path: root/fs/cifs/inode.c
diff options
context:
space:
mode:
authorRohith Surabattula <rohiths@microsoft.com>2021-04-19 19:02:03 +0000
committerSteve French <stfrench@microsoft.com>2021-05-04 11:53:15 -0500
commit78c09634f7dc061a3bd09704cdbebb3762a45cdf (patch)
tree54a99294ff733dbf99bad6110c78e2aeb9f33151 /fs/cifs/inode.c
parent5c1acf3fe05ce443edba5e2110c9e581765f66a8 (diff)
downloadlinux-rpi-78c09634f7dc061a3bd09704cdbebb3762a45cdf.tar.gz
linux-rpi-78c09634f7dc061a3bd09704cdbebb3762a45cdf.tar.bz2
linux-rpi-78c09634f7dc061a3bd09704cdbebb3762a45cdf.zip
Cifs: Fix kernel oops caused by deferred close for files.
Fix regression issue caused by deferred close for files. Signed-off-by: Rohith Surabattula <rohiths@microsoft.com> Reviewed-by: Shyam Prasad N <sprasad@microsoft.com> Signed-off-by: Steve French <stfrench@microsoft.com>
Diffstat (limited to 'fs/cifs/inode.c')
-rw-r--r--fs/cifs/inode.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/fs/cifs/inode.c b/fs/cifs/inode.c
index 728ff45b6667..591f18e3e933 100644
--- a/fs/cifs/inode.c
+++ b/fs/cifs/inode.c
@@ -1647,7 +1647,7 @@ int cifs_unlink(struct inode *dir, struct dentry *dentry)
goto unlink_out;
}
- cifs_close_deferred_file(CIFS_I(inode));
+ cifs_close_all_deferred_files(tcon);
if (cap_unix(tcon->ses) && (CIFS_UNIX_POSIX_PATH_OPS_CAP &
le64_to_cpu(tcon->fsUnixInfo.Capability))) {
rc = CIFSPOSIXDelFile(xid, tcon, full_path,
@@ -2125,6 +2125,7 @@ cifs_rename2(struct user_namespace *mnt_userns, struct inode *source_dir,
goto cifs_rename_exit;
}
+ cifs_close_all_deferred_files(tcon);
rc = cifs_do_rename(xid, source_dentry, from_name, target_dentry,
to_name);