[PATCH 1/2] fuse: don't d_drop() before d_splice_alias()

From: NeilBrown

Date: Mon Sep 28 2026 - 23:31:34 EST


From: NeilBrown <neil@xxxxxxxxxx>

create_new_entry() is used to finalise the creation of various
objects (mknod, mkdir, symlink etc).

It currently uses d_drop() which will be a problem for a proposed
new locking scheme.

d_splice_alias() now works on hashed dentries so the d_drop() isn't
needed. Drop it.

Signed-off-by: NeilBrown <neil@xxxxxxxxxx>
---
fs/fuse/dir.c | 1 -
1 file changed, 1 deletion(-)

diff --git a/fs/fuse/dir.c b/fs/fuse/dir.c
index e49b4e874b15..519b4f85618c 100644
--- a/fs/fuse/dir.c
+++ b/fs/fuse/dir.c
@@ -1031,7 +1031,6 @@ static struct dentry *create_new_entry(struct mnt_idmap *idmap, struct fuse_moun
}
kfree(forget);

- d_drop(entry);
d = d_splice_alias(inode, entry);
if (IS_ERR(d))
return d;

base-commit: 3879f51857325da9bf3cfb073280257cd16ae067
--
2.50.0.107.gf914562f5916.dirty