[PATCH 42/53] fuse: don't d_drop() before d_splice_alias()
From: NeilBrown
Date: Thu Mar 12 2026 - 17:56:48 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 7ac6b232ef12..a659877b520a 100644
--- a/fs/fuse/dir.c
+++ b/fs/fuse/dir.c
@@ -1020,7 +1020,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;
--
2.50.0.107.gf914562f5916.dirty