OSDN Git Service

kill d_instantiate_no_diralias()
authorAl Viro <viro@zeniv.linux.org.uk>
Mon, 28 May 2018 22:27:19 +0000 (18:27 -0400)
committerAl Viro <viro@zeniv.linux.org.uk>
Thu, 2 Aug 2018 03:18:53 +0000 (23:18 -0400)
commitc971e6a006175bd0f195c6346c4e8bc4089bec00
tree7b5a8c5ec29f2e08fe09b8e7332f2288e247f495
parentb0c6108ecf64fce3987f80c1610472a56d480d9a
kill d_instantiate_no_diralias()

The only user is fuse_create_new_entry(), and there it's used to
mitigate the same mkdir/open-by-handle race as in nfs_mkdir().
The same solution applies - unhash the mkdir argument, then
call d_splice_alias() and if that returns a reference to preexisting
alias, dput() and report success.  ->mkdir() argument left unhashed
negative with the preexisting alias moved in the right place is just
fine from the ->mkdir() callers point of view.

Cc: Miklos Szeredi <miklos@szeredi.hu>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
fs/dcache.c
fs/fuse/dir.c
include/linux/dcache.h