diff options
| author | Al Viro <viro@zeniv.linux.org.uk> | 2025-08-20 21:48:35 -0400 |
|---|---|---|
| committer | Al Viro <viro@zeniv.linux.org.uk> | 2025-09-02 19:35:57 -0400 |
| commit | f80b84358f65167546b6cd58f867ef5669f22f3d (patch) | |
| tree | 30157b2ccfe9dfc3d24041f51638cd9444a69e2b | |
| parent | 511db073b2150388dd05258ca2d7045dd0784033 (diff) | |
has_locked_children(): use guards
... and document the locking requirements of __has_locked_children()
Reviewed-by: Christian Brauner <brauner@kernel.org>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
| -rw-r--r-- | fs/namespace.c | 9 |
1 files changed, 3 insertions, 6 deletions
diff --git a/fs/namespace.c b/fs/namespace.c index 59948cbf9c47..2cb3cb8307ca 100644 --- a/fs/namespace.c +++ b/fs/namespace.c @@ -2373,6 +2373,7 @@ void dissolve_on_fput(struct vfsmount *mnt) } } +/* locks: namespace_shared && pinned(mnt) || mount_locked_reader */ static bool __has_locked_children(struct mount *mnt, struct dentry *dentry) { struct mount *child; @@ -2389,12 +2390,8 @@ static bool __has_locked_children(struct mount *mnt, struct dentry *dentry) bool has_locked_children(struct mount *mnt, struct dentry *dentry) { - bool res; - - read_seqlock_excl(&mount_lock); - res = __has_locked_children(mnt, dentry); - read_sequnlock_excl(&mount_lock); - return res; + guard(mount_locked_reader)(); + return __has_locked_children(mnt, dentry); } /* |
