]> www.infradead.org Git - users/jedix/linux-maple.git/commit
saner calling conventions for ->d_automount()
authorAl Viro <viro@zeniv.linux.org.uk>
Thu, 24 Apr 2025 05:45:05 +0000 (01:45 -0400)
committerAl Viro <viro@zeniv.linux.org.uk>
Mon, 5 May 2025 17:42:49 +0000 (13:42 -0400)
commit006ff7498fe89bd9dfb891101f02557d5cfcf427
treedf927455a4886400412ba2d83fead6b597258949
parent92a09c47464d040866cf2b4cd052bc60555185fb
saner calling conventions for ->d_automount()

Currently the calling conventions for ->d_automount() instances have
an odd wart - returned new mount to be attached is expected to have
refcount 2.

That kludge is intended to make sure that mark_mounts_for_expiry() called
before we get around to attaching that new mount to the tree won't decide
to take it out.  finish_automount() drops the extra reference after it's
done with attaching mount to the tree - or drops the reference twice in
case of error.  ->d_automount() instances have rather counterintuitive
boilerplate in them.

There's a much simpler approach: have mark_mounts_for_expiry() skip the
mounts that are yet to be mounted.  And to hell with grabbing/dropping
those extra references.  Makes for simpler correctness analysis, at that...

Reviewed-by: Christian Brauner <brauner@kernel.org>
Reviewed-by: Jeff Layton <jlayton@kernel.org>
Reviewed-by: Paulo Alcantara (Red Hat) <pc@manguebit.com>
Acked-by: David Howells <dhowells@redhat.com>
Tested-by: David Howells <dhowells@redhat.com>
Acked-by: Steven Rostedt (Google) <rostedt@goodmis.org>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Documentation/filesystems/porting.rst
Documentation/filesystems/vfs.rst
fs/afs/mntpt.c
fs/fuse/dir.c
fs/namespace.c
fs/nfs/namespace.c
fs/smb/client/namespace.c
kernel/trace/trace.c