cifs: have ->mkdir() handle race with another client sanely
authorAl Viro <viro@zeniv.linux.org.uk>
Thu, 11 Feb 2021 03:13:03 +0000 (22:13 -0500)
committerAl Viro <viro@zeniv.linux.org.uk>
Sat, 13 Mar 2021 03:15:20 +0000 (22:15 -0500)
commit3bcb39b086bf8d7c3cff013564f86162ec497d90
treefd242a8f4b39060cb0fa7ba8ac19f2ffd94548f6
parent4ab5260dab28109979a1b47a8996c9922219927f
cifs: have ->mkdir() handle race with another client sanely

if we have mkdir request reported successful *and* simulating lookup
gets us a non-directory (which is possible if another client has
managed to get rmdir and create in between), the sane action is not
to mangle ->i_mode of non-directory inode to S_IFDIR | mode, it's
"report success and return with dentry negative unhashed" - that
way the next lookup will do the right thing.

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
fs/cifs/inode.c