From: Frank Sorenson Date: Tue, 16 Apr 2019 13:37:27 +0000 (-0500) Subject: cifs: do not attempt cifs operation on smb2+ rename error X-Git-Tag: v5.15~6561^2~1 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=652727bbe1b17993636346716ae5867627793647;p=platform%2Fkernel%2Flinux-starfive.git cifs: do not attempt cifs operation on smb2+ rename error A path-based rename returning EBUSY will incorrectly try opening the file with a cifs (NT Create AndX) operation on an smb2+ mount, which causes the server to force a session close. If the mount is smb2+, skip the fallback. Signed-off-by: Frank Sorenson Signed-off-by: Steve French CC: Stable Reviewed-by: Ronnie Sahlberg --- diff --git a/fs/cifs/inode.c b/fs/cifs/inode.c index 53fdb5d..538fd7d 100644 --- a/fs/cifs/inode.c +++ b/fs/cifs/inode.c @@ -1735,6 +1735,10 @@ cifs_do_rename(const unsigned int xid, struct dentry *from_dentry, if (rc == 0 || rc != -EBUSY) goto do_rename_exit; + /* Don't fall back to using SMB on SMB 2+ mount */ + if (server->vals->protocol_id != 0) + goto do_rename_exit; + /* open-file renames don't work across directories */ if (to_dentry->d_parent != from_dentry->d_parent) goto do_rename_exit;