fuse: return correct dentry for ->mkdir
authorNeilBrown <neilb@suse.de>
Tue, 4 Mar 2025 21:48:20 +0000 (08:48 +1100)
committerChristian Brauner <brauner@kernel.org>
Wed, 5 Mar 2025 10:52:48 +0000 (11:52 +0100)
commitd701902c13dfc40b83b52e41155824c038ac19d2
tree8fe930fdde9ca79171f76e10f983b72750122bae
parent3f92c7b57687fb24da46487d91dba7aa58aed75b
fuse: return correct dentry for ->mkdir

fuse already uses d_splice_alias() to ensure an appropriate dentry is
found for a newly created dentry.  Now that ->mkdir can return that
dentry we do so.

This requires changing create_new_entry() to return a dentry and
handling that change in all callers.

Note that when create_new_entry() is asked to create anything other than
a directory we can be sure it will NOT return an alternate dentry as
d_splice_alias() only returns an alternate dentry for directories.
So we don't need to check for that case when passing one the result.

Reviewed-by: Jeff Layton <jlayton@kernel.org>
Signed-off-by: NeilBrown <neilb@suse.de>
Link: https://lore.kernel.org/r/174112490070.33508.15852253149143067890@noble.neil.brown.name
Signed-off-by: Christian Brauner <brauner@kernel.org>
fs/fuse/dir.c