From: Al Viro <viro@zeniv.linux.org.uk>
To: linux-fsdevel@vger.kernel.org
Cc: brauner@kernel.org, jack@suse.cz, torvalds@linux-foundation.org
Subject: [PATCH v3 14/65] mnt_set_expiry(): use guards
Date: Wed, 3 Sep 2025 05:54:35 +0100 [thread overview]
Message-ID: <20250903045537.2579614-14-viro@zeniv.linux.org.uk> (raw)
In-Reply-To: <20250903045537.2579614-1-viro@zeniv.linux.org.uk>
The reason why it needs only mount_locked_reader is that there's no lockless
accesses of expiry lists.
Reviewed-by: Christian Brauner <brauner@kernel.org>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
---
fs/namespace.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/fs/namespace.c b/fs/namespace.c
index 2cb3cb8307ca..db25c81d7f68 100644
--- a/fs/namespace.c
+++ b/fs/namespace.c
@@ -3858,9 +3858,8 @@ int finish_automount(struct vfsmount *m, const struct path *path)
*/
void mnt_set_expiry(struct vfsmount *mnt, struct list_head *expiry_list)
{
- read_seqlock_excl(&mount_lock);
+ guard(mount_locked_reader)();
list_add_tail(&real_mount(mnt)->mnt_expire, expiry_list);
- read_sequnlock_excl(&mount_lock);
}
EXPORT_SYMBOL(mnt_set_expiry);
--
2.47.2
next prev parent reply other threads:[~2025-09-03 4:55 UTC|newest]
Thread overview: 321+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-08-25 4:40 [PATCHED][RFC][CFT] mount-related stuff Al Viro
2025-08-25 4:43 ` [PATCH 01/52] fs/namespace.c: fix the namespace_sem guard mess Al Viro
2025-08-25 4:43 ` [PATCH 02/52] introduced guards for mount_lock Al Viro
2025-08-25 12:32 ` Christian Brauner
2025-08-25 13:46 ` Al Viro
2025-08-25 20:21 ` Al Viro
2025-08-25 23:44 ` Al Viro
2025-08-26 1:44 ` Al Viro
2025-08-26 15:17 ` Askar Safin
2025-08-26 15:45 ` Al Viro
2025-08-25 4:43 ` [PATCH 03/52] fs/namespace.c: allow to drop vfsmount references via __free(mntput) Al Viro
2025-08-25 12:33 ` Christian Brauner
2025-08-25 4:43 ` [PATCH 04/52] __detach_mounts(): use guards Al Viro
2025-08-25 12:33 ` Christian Brauner
2025-08-25 4:43 ` [PATCH 05/52] __is_local_mountpoint(): " Al Viro
2025-08-25 12:33 ` Christian Brauner
2025-08-25 4:43 ` [PATCH 06/52] do_change_type(): " Al Viro
2025-08-25 12:34 ` Christian Brauner
2025-08-25 4:43 ` [PATCH 07/52] do_set_group(): " Al Viro
2025-08-25 12:35 ` Christian Brauner
2025-08-25 4:43 ` [PATCH 08/52] mark_mounts_for_expiry(): " Al Viro
2025-08-25 12:37 ` Christian Brauner
2025-08-25 4:43 ` [PATCH 09/52] put_mnt_ns(): " Al Viro
2025-08-25 12:37 ` Christian Brauner
2025-08-25 12:40 ` Christian Brauner
2025-08-25 16:21 ` Al Viro
2025-08-25 4:43 ` [PATCH 10/52] mnt_already_visible(): " Al Viro
2025-08-25 12:39 ` Christian Brauner
2025-08-25 4:43 ` [PATCH 11/52] check_for_nsfs_mounts(): no need to take locks Al Viro
2025-08-25 12:48 ` Christian Brauner
2025-08-25 4:43 ` [PATCH 12/52] propagate_mnt(): use scoped_guard(mount_locked_reader) for mnt_set_mountpoint() Al Viro
2025-08-25 12:49 ` Christian Brauner
2025-08-25 4:43 ` [PATCH 13/52] has_locked_children(): use guards Al Viro
2025-08-25 11:54 ` Linus Torvalds
2025-08-25 17:33 ` Al Viro
2025-08-25 12:49 ` Christian Brauner
2025-08-25 4:43 ` [PATCH 14/52] mnt_set_expiry(): " Al Viro
2025-08-25 12:51 ` Christian Brauner
2025-08-25 4:43 ` [PATCH 15/52] path_is_under(): " Al Viro
2025-08-25 12:56 ` Christian Brauner
2025-08-25 4:43 ` [PATCH 16/52] current_chrooted(): don't bother with follow_down_one() Al Viro
2025-08-25 12:57 ` Christian Brauner
2025-08-25 4:43 ` [PATCH 17/52] current_chrooted(): use guards Al Viro
2025-08-25 12:57 ` Christian Brauner
2025-08-25 4:43 ` [PATCH 18/52] do_move_mount(): trim local variables Al Viro
2025-08-25 12:57 ` Christian Brauner
2025-08-25 4:43 ` [PATCH 19/52] do_move_mount(): deal with the checks on old_path early Al Viro
2025-08-25 13:00 ` Christian Brauner
2025-08-25 4:43 ` [PATCH 20/52] move_mount(2): take sanity checks in 'beneath' case into do_lock_mount() Al Viro
2025-08-25 12:10 ` Linus Torvalds
2025-08-25 12:17 ` Linus Torvalds
2025-08-25 13:02 ` Christian Brauner
2025-08-25 16:05 ` Al Viro
2025-08-25 4:43 ` [PATCH 21/52] finish_automount(): simplify the ELOOP check Al Viro
2025-08-25 13:02 ` Christian Brauner
2025-08-25 4:43 ` [PATCH 22/52] do_loopback(): use __free(path_put) to deal with old_path Al Viro
2025-08-25 13:02 ` Christian Brauner
2025-08-25 4:43 ` [PATCH 23/52] pivot_root(2): use __free() to deal with struct path in it Al Viro
2025-08-25 13:03 ` Christian Brauner
2025-08-25 4:43 ` [PATCH 24/52] finish_automount(): take the lock_mount() analogue into a helper Al Viro
2025-08-25 13:08 ` Christian Brauner
2025-08-25 4:43 ` [PATCH 25/52] do_new_mount_rc(): use __free() to deal with dropping mnt on failure Al Viro
2025-08-25 13:29 ` Christian Brauner
2025-08-25 16:09 ` Al Viro
2025-08-26 8:27 ` Christian Brauner
2025-08-26 17:00 ` Al Viro
2025-08-26 17:55 ` Al Viro
2025-08-26 18:21 ` [RFC][PATCH] switch do_new_mount_fc() to using fc_mount() Al Viro
2025-08-27 15:38 ` Paul Moore
2025-08-25 4:43 ` [PATCH 26/52] finish_automount(): use __free() to deal with dropping mnt on failure Al Viro
2025-08-25 13:09 ` Christian Brauner
2025-08-25 4:43 ` [PATCH 27/52] change calling conventions for lock_mount() et.al Al Viro
2025-08-25 4:43 ` [PATCH 28/52] do_move_mount(): use the parent mount returned by do_lock_mount() Al Viro
2025-08-25 4:43 ` [PATCH 29/52] do_add_mount(): switch to passing pinned_mountpoint instead of mountpoint + path Al Viro
2025-08-25 4:43 ` [PATCH 30/52] graft_tree(), attach_recursive_mnt() - pass pinned_mountpoint Al Viro
2025-08-25 4:43 ` [PATCH 31/52] pivot_root(2): use old_mp.mp->m_dentry instead of old.dentry Al Viro
2025-08-25 13:43 ` Christian Brauner
2025-08-25 4:43 ` [PATCH 32/52] don't bother passing new_path->dentry to can_move_mount_beneath() Al Viro
2025-08-25 4:43 ` [PATCH 33/52] new helper: topmost_overmount() Al Viro
2025-08-25 13:43 ` Christian Brauner
2025-08-25 4:43 ` [PATCH 34/52] do_lock_mount(): don't modify path Al Viro
2025-08-26 14:14 ` Askar Safin
2025-08-25 4:43 ` [PATCH 35/52] constify check_mnt() Al Viro
2025-08-25 13:43 ` Christian Brauner
2025-08-25 4:43 ` [PATCH 36/52] do_mount_setattr(): constify path argument Al Viro
2025-08-25 13:30 ` Christian Brauner
2025-08-25 4:43 ` [PATCH 37/52] do_set_group(): constify path arguments Al Viro
2025-08-25 13:29 ` Christian Brauner
2025-08-25 4:43 ` [PATCH 38/52] drop_collected_paths(): constify arguments Al Viro
2025-08-25 13:31 ` Christian Brauner
2025-08-25 4:43 ` [PATCH 39/52] collect_paths(): constify the return value Al Viro
2025-08-25 13:30 ` Christian Brauner
2025-08-25 4:43 ` [PATCH 40/52] do_move_mount(), vfs_move_mount(), do_move_mount_old(): constify struct path argument(s) Al Viro
2025-08-25 13:30 ` Christian Brauner
2025-08-25 4:43 ` [PATCH 41/52] mnt_warn_timestamp_expiry(): constify struct path argument Al Viro
2025-08-25 13:32 ` Christian Brauner
2025-08-25 4:43 ` [PATCH 42/52] do_new_mount{,_fc}(): " Al Viro
2025-08-25 13:30 ` Christian Brauner
2025-08-25 4:43 ` [PATCH 43/52] do_{loopback,change_type,remount,reconfigure_mnt}(): " Al Viro
2025-08-25 13:31 ` Christian Brauner
2025-08-25 4:43 ` [PATCH 44/52] path_mount(): " Al Viro
2025-08-25 13:32 ` Christian Brauner
2025-08-25 4:43 ` [PATCH 45/52] may_copy_tree(), __do_loopback(): " Al Viro
2025-08-25 13:40 ` Christian Brauner
2025-08-25 4:43 ` [PATCH 46/52] path_umount(): " Al Viro
2025-08-25 13:40 ` Christian Brauner
2025-08-25 4:43 ` [PATCH 47/52] constify can_move_mount_beneath() arguments Al Viro
2025-08-25 13:39 ` Christian Brauner
2025-08-25 4:43 ` [PATCH 48/52] do_move_mount_old(): use __free(path_put) Al Viro
2025-08-25 13:40 ` Christian Brauner
2025-08-25 4:43 ` [PATCH 49/52] do_mount(): " Al Viro
2025-08-25 13:32 ` Christian Brauner
2025-08-25 4:43 ` [PATCH 50/52] umount_tree(): take all victims out of propagation graph at once Al Viro
2025-08-25 4:43 ` [PATCH 51/52] ecryptfs: get rid of pointless mount references in ecryptfs dentries Al Viro
2025-08-25 13:41 ` Christian Brauner
2025-08-25 4:43 ` [PATCH 52/52] fs/namespace.c: sanitize descriptions for {__,}lookup_mnt() Al Viro
2025-08-25 13:42 ` Christian Brauner
2025-08-25 12:30 ` [PATCH 01/52] fs/namespace.c: fix the namespace_sem guard mess Christian Brauner
2025-08-25 12:26 ` [PATCHED][RFC][CFT] mount-related stuff Christian Brauner
2025-08-25 12:43 ` Christian Brauner
2025-08-25 16:11 ` Al Viro
2025-08-25 17:43 ` Al Viro
2025-08-25 20:18 ` Theodore Ts'o
2025-08-26 8:56 ` Christian Brauner
2025-08-27 17:19 ` Linus Torvalds
2025-08-27 17:49 ` Linus Torvalds
2025-08-27 22:49 ` Konstantin Ryabitsev
2025-08-27 23:40 ` Linus Torvalds
2025-08-28 0:41 ` Konstantin Ryabitsev
2025-08-28 1:00 ` Al Viro
2025-08-28 1:15 ` Konstantin Ryabitsev
2025-08-28 1:29 ` Linus Torvalds
2025-08-29 12:30 ` Theodore Ts'o
2025-08-29 18:25 ` Konstantin Ryabitsev
2025-08-28 23:07 ` [PATCHES v2][RFC][CFT] " Al Viro
2025-08-28 23:07 ` [PATCH v2 01/63] fs/namespace.c: fix the namespace_sem guard mess Al Viro
2025-08-28 23:07 ` [PATCH v2 02/63] introduced guards for mount_lock Al Viro
2025-08-29 9:49 ` Christian Brauner
2025-08-28 23:07 ` [PATCH v2 03/63] fs/namespace.c: allow to drop vfsmount references via __free(mntput) Al Viro
2025-08-28 23:07 ` [PATCH v2 04/63] __detach_mounts(): use guards Al Viro
2025-08-29 9:48 ` Christian Brauner
2025-08-28 23:07 ` [PATCH v2 05/63] __is_local_mountpoint(): " Al Viro
2025-08-28 23:07 ` [PATCH v2 06/63] do_change_type(): " Al Viro
2025-08-28 23:07 ` [PATCH v2 07/63] do_set_group(): " Al Viro
2025-08-28 23:07 ` [PATCH v2 08/63] mark_mounts_for_expiry(): " Al Viro
2025-08-28 23:07 ` [PATCH v2 09/63] put_mnt_ns(): " Al Viro
2025-08-28 23:07 ` [PATCH v2 10/63] mnt_already_visible(): " Al Viro
2025-08-28 23:07 ` [PATCH v2 11/63] check_for_nsfs_mounts(): no need to take locks Al Viro
2025-08-28 23:07 ` [PATCH v2 12/63] propagate_mnt(): use scoped_guard(mount_locked_reader) for mnt_set_mountpoint() Al Viro
2025-08-28 23:07 ` [PATCH v2 13/63] has_locked_children(): use guards Al Viro
2025-08-29 9:49 ` Christian Brauner
2025-08-28 23:07 ` [PATCH v2 14/63] mnt_set_expiry(): " Al Viro
2025-08-29 9:49 ` Christian Brauner
2025-08-28 23:07 ` [PATCH v2 15/63] path_is_under(): " Al Viro
2025-08-28 23:07 ` [PATCH v2 16/63] current_chrooted(): don't bother with follow_down_one() Al Viro
2025-08-28 23:07 ` [PATCH v2 17/63] current_chrooted(): use guards Al Viro
2025-08-28 23:07 ` [PATCH v2 18/63] switch do_new_mount_fc() to fc_mount() Al Viro
2025-08-29 9:53 ` Christian Brauner
2025-08-28 23:07 ` [PATCH v2 19/63] do_move_mount(): trim local variables Al Viro
2025-08-28 23:07 ` [PATCH v2 20/63] do_move_mount(): deal with the checks on old_path early Al Viro
2025-08-28 23:07 ` [PATCH v2 21/63] move_mount(2): take sanity checks in 'beneath' case into do_lock_mount() Al Viro
2025-08-28 23:07 ` [PATCH v2 22/63] finish_automount(): simplify the ELOOP check Al Viro
2025-08-28 23:07 ` [PATCH v2 23/63] do_loopback(): use __free(path_put) to deal with old_path Al Viro
2025-08-28 23:07 ` [PATCH v2 24/63] pivot_root(2): use __free() to deal with struct path in it Al Viro
2025-08-28 23:07 ` [PATCH v2 25/63] finish_automount(): take the lock_mount() analogue into a helper Al Viro
2025-08-28 23:07 ` [PATCH v2 26/63] do_new_mount_rc(): use __free() to deal with dropping mnt on failure Al Viro
2025-09-01 11:34 ` Christian Brauner
2025-08-28 23:07 ` [PATCH v2 27/63] finish_automount(): " Al Viro
2025-08-28 23:07 ` [PATCH v2 28/63] change calling conventions for lock_mount() et.al Al Viro
2025-09-01 11:37 ` Christian Brauner
2025-08-28 23:07 ` [PATCH v2 29/63] do_move_mount(): use the parent mount returned by do_lock_mount() Al Viro
2025-09-01 11:38 ` Christian Brauner
2025-08-28 23:07 ` [PATCH v2 30/63] do_add_mount(): switch to passing pinned_mountpoint instead of mountpoint + path Al Viro
2025-09-01 11:40 ` Christian Brauner
2025-08-28 23:07 ` [PATCH v2 31/63] graft_tree(), attach_recursive_mnt() - pass pinned_mountpoint Al Viro
2025-09-01 11:41 ` Christian Brauner
2025-08-28 23:07 ` [PATCH v2 32/63] pivot_root(2): use old_mp.mp->m_dentry instead of old.dentry Al Viro
2025-08-28 23:07 ` [PATCH v2 33/63] don't bother passing new_path->dentry to can_move_mount_beneath() Al Viro
2025-08-28 23:20 ` Linus Torvalds
2025-08-28 23:39 ` Al Viro
2025-08-28 23:07 ` [PATCH v2 34/63] new helper: topmost_overmount() Al Viro
2025-08-28 23:07 ` [PATCH v2 35/63] do_lock_mount(): don't modify path Al Viro
2025-09-02 10:55 ` Christian Brauner
2025-08-28 23:07 ` [PATCH v2 36/63] constify check_mnt() Al Viro
2025-08-28 23:07 ` [PATCH v2 37/63] do_mount_setattr(): constify path argument Al Viro
2025-08-28 23:07 ` [PATCH v2 38/63] do_set_group(): constify path arguments Al Viro
2025-08-28 23:07 ` [PATCH v2 39/63] drop_collected_paths(): constify arguments Al Viro
2025-08-28 23:07 ` [PATCH v2 40/63] collect_paths(): constify the return value Al Viro
2025-08-28 23:07 ` [PATCH v2 41/63] do_move_mount(), vfs_move_mount(), do_move_mount_old(): constify struct path argument(s) Al Viro
2025-08-28 23:07 ` [PATCH v2 42/63] mnt_warn_timestamp_expiry(): constify struct path argument Al Viro
2025-08-28 23:07 ` [PATCH v2 43/63] do_new_mount{,_fc}(): " Al Viro
2025-08-28 23:07 ` [PATCH v2 44/63] do_{loopback,change_type,remount,reconfigure_mnt}(): " Al Viro
2025-08-28 23:07 ` [PATCH v2 45/63] path_mount(): " Al Viro
2025-08-28 23:07 ` [PATCH v2 46/63] may_copy_tree(), __do_loopback(): " Al Viro
2025-08-28 23:07 ` [PATCH v2 47/63] path_umount(): " Al Viro
2025-08-28 23:07 ` [PATCH v2 48/63] constify can_move_mount_beneath() arguments Al Viro
2025-08-28 23:07 ` [PATCH v2 49/63] do_move_mount_old(): use __free(path_put) Al Viro
2025-08-28 23:07 ` [PATCH v2 50/63] do_mount(): " Al Viro
2025-08-28 23:07 ` [PATCH v2 51/63] umount_tree(): take all victims out of propagation graph at once Al Viro
2025-09-01 11:50 ` Christian Brauner
2025-08-28 23:07 ` [PATCH v2 52/63] ecryptfs: get rid of pointless mount references in ecryptfs dentries Al Viro
2025-08-28 23:07 ` [PATCH v2 53/63] fs/namespace.c: sanitize descriptions for {__,}lookup_mnt() Al Viro
2025-08-28 23:07 ` [PATCH v2 54/63] open_detached_copy(): don't bother with mount_lock_hash() Al Viro
2025-09-01 11:29 ` Christian Brauner
2025-08-28 23:07 ` [PATCH v2 55/63] open_detached_copy(): separate creation of namespace into helper Al Viro
2025-08-29 9:54 ` Christian Brauner
2025-08-28 23:07 ` [PATCH v2 56/63] mnt_ns_tree_remove(): DTRT if mnt_ns had never been added to mnt_ns_list Al Viro
2025-08-29 9:57 ` Christian Brauner
2025-08-28 23:08 ` [PATCH v2 57/63] copy_mnt_ns(): use the regular mechanism for freeing empty mnt_ns on failure Al Viro
2025-08-29 9:56 ` Christian Brauner
2025-08-28 23:08 ` [PATCH v2 58/63] copy_mnt_ns(): use guards Al Viro
2025-09-01 11:43 ` Christian Brauner
2025-08-28 23:08 ` [PATCH v2 59/63] setup_mnt(): primitive for connecting a mount to filesystem Al Viro
2025-08-28 23:08 ` [PATCH v2 60/63] preparations to taking MNT_WRITE_HOLD out of ->mnt_flags Al Viro
2025-08-28 23:08 ` [PATCH v2 61/63] struct mount: relocate MNT_WRITE_HOLD bit Al Viro
2025-08-28 23:31 ` Linus Torvalds
2025-08-29 0:11 ` Al Viro
2025-08-29 0:35 ` Linus Torvalds
2025-08-29 6:03 ` Al Viro
2025-08-29 6:04 ` [59/63] simplify the callers of mnt_unhold_writers() Al Viro
2025-09-01 11:20 ` Christian Brauner
2025-08-29 6:05 ` [60/63] setup_mnt(): primitive for connecting a mount to filesystem Al Viro
2025-08-29 9:59 ` Christian Brauner
2025-08-29 16:37 ` Al Viro
2025-08-30 4:36 ` Al Viro
2025-08-30 7:33 ` [RFC] does # really need to be escaped in devnames? Al Viro
2025-08-30 19:40 ` Linus Torvalds
2025-08-30 20:42 ` Al Viro
2025-09-02 15:03 ` Siddhesh Poyarekar
2025-09-02 16:30 ` Linus Torvalds
2025-09-02 16:39 ` Siddhesh Poyarekar
2025-09-02 17:48 ` David Howells
2025-09-02 20:04 ` Linus Torvalds
2025-09-01 11:17 ` [60/63] setup_mnt(): primitive for connecting a mount to filesystem Christian Brauner
2025-08-29 6:06 ` [61/63] preparations to taking MNT_WRITE_HOLD out of ->mnt_flags Al Viro
2025-09-01 11:27 ` Christian Brauner
2025-08-29 6:07 ` [62/63] struct mount: relocate MNT_WRITE_HOLD bit Al Viro
2025-09-01 11:26 ` Christian Brauner
2025-08-28 23:08 ` [PATCH v2 62/63] simplify the callers of mnt_unhold_writers() Al Viro
2025-08-28 23:08 ` [PATCH v2 63/63] WRITE_HOLD machinery: no need for to bump mount_lock seqcount Al Viro
2025-09-01 11:28 ` Christian Brauner
2025-09-03 4:54 ` [PATCHES v3][RFC][CFT] mount-related stuff Al Viro
2025-09-03 4:54 ` [PATCH v3 01/65] fs/namespace.c: fix the namespace_sem guard mess Al Viro
2025-09-03 4:54 ` [PATCH v3 02/65] introduced guards for mount_lock Al Viro
2025-09-03 4:54 ` [PATCH v3 03/65] fs/namespace.c: allow to drop vfsmount references via __free(mntput) Al Viro
2025-09-03 4:54 ` [PATCH v3 04/65] __detach_mounts(): use guards Al Viro
2025-09-03 4:54 ` [PATCH v3 05/65] __is_local_mountpoint(): " Al Viro
2025-09-03 4:54 ` [PATCH v3 06/65] do_change_type(): " Al Viro
2025-09-03 4:54 ` [PATCH v3 07/65] do_set_group(): " Al Viro
2025-09-03 4:54 ` [PATCH v3 08/65] mark_mounts_for_expiry(): " Al Viro
2025-09-03 4:54 ` [PATCH v3 09/65] put_mnt_ns(): " Al Viro
2025-09-03 4:54 ` [PATCH v3 10/65] mnt_already_visible(): " Al Viro
2025-09-03 4:54 ` [PATCH v3 11/65] check_for_nsfs_mounts(): no need to take locks Al Viro
2025-09-03 4:54 ` [PATCH v3 12/65] propagate_mnt(): use scoped_guard(mount_locked_reader) for mnt_set_mountpoint() Al Viro
2025-09-03 4:54 ` [PATCH v3 13/65] has_locked_children(): use guards Al Viro
2025-09-03 4:54 ` Al Viro [this message]
2025-09-03 4:54 ` [PATCH v3 15/65] path_is_under(): " Al Viro
2025-09-03 4:54 ` [PATCH v3 16/65] current_chrooted(): don't bother with follow_down_one() Al Viro
2025-09-03 4:54 ` [PATCH v3 17/65] current_chrooted(): use guards Al Viro
2025-09-03 4:54 ` [PATCH v3 18/65] switch do_new_mount_fc() to fc_mount() Al Viro
2025-09-03 4:54 ` [PATCH v3 19/65] do_move_mount(): trim local variables Al Viro
2025-09-03 4:54 ` [PATCH v3 20/65] do_move_mount(): deal with the checks on old_path early Al Viro
2025-09-03 4:54 ` [PATCH v3 21/65] move_mount(2): take sanity checks in 'beneath' case into do_lock_mount() Al Viro
2025-09-03 4:54 ` [PATCH v3 22/65] finish_automount(): simplify the ELOOP check Al Viro
2025-09-03 4:54 ` [PATCH v3 23/65] do_loopback(): use __free(path_put) to deal with old_path Al Viro
2025-09-03 4:54 ` [PATCH v3 24/65] pivot_root(2): use __free() to deal with struct path in it Al Viro
2025-09-03 4:54 ` [PATCH v3 25/65] finish_automount(): take the lock_mount() analogue into a helper Al Viro
2025-09-03 4:54 ` [PATCH v3 26/65] do_new_mount_fc(): use __free() to deal with dropping mnt on failure Al Viro
2025-09-03 4:54 ` [PATCH v3 26/63] do_new_mount_rc(): " Al Viro
2025-09-03 4:54 ` [PATCH v3 27/65] finish_automount(): " Al Viro
2025-09-03 4:54 ` [PATCH v3 28/65] change calling conventions for lock_mount() et.al Al Viro
2025-09-03 4:54 ` [PATCH v3 29/65] do_move_mount(): use the parent mount returned by do_lock_mount() Al Viro
2025-09-03 4:54 ` [PATCH v3 30/65] do_add_mount(): switch to passing pinned_mountpoint instead of mountpoint + path Al Viro
2025-09-03 4:54 ` [PATCH v3 31/65] graft_tree(), attach_recursive_mnt() - pass pinned_mountpoint Al Viro
2025-09-03 4:54 ` [PATCH v3 32/65] pivot_root(2): use old_mp.mp->m_dentry instead of old.dentry Al Viro
2025-09-03 4:54 ` [PATCH v3 33/65] don't bother passing new_path->dentry to can_move_mount_beneath() Al Viro
2025-09-03 4:54 ` [PATCH v3 34/65] new helper: topmost_overmount() Al Viro
2025-09-03 4:54 ` [PATCH v3 35/65] do_lock_mount(): don't modify path Al Viro
2025-09-03 4:54 ` [PATCH v3 36/65] constify check_mnt() Al Viro
2025-09-03 4:54 ` [PATCH v3 37/65] do_mount_setattr(): constify path argument Al Viro
2025-09-03 4:55 ` [PATCH v3 38/65] do_set_group(): constify path arguments Al Viro
2025-09-03 4:55 ` [PATCH v3 39/65] drop_collected_paths(): constify arguments Al Viro
2025-09-03 4:55 ` [PATCH v3 40/65] collect_paths(): constify the return value Al Viro
2025-09-03 4:55 ` [PATCH v3 41/65] do_move_mount(), vfs_move_mount(), do_move_mount_old(): constify struct path argument(s) Al Viro
2025-09-03 4:55 ` [PATCH v3 42/65] mnt_warn_timestamp_expiry(): constify struct path argument Al Viro
2025-09-03 4:55 ` [PATCH v3 43/65] do_new_mount{,_fc}(): " Al Viro
2025-09-03 4:55 ` [PATCH v3 44/65] do_{loopback,change_type,remount,reconfigure_mnt}(): " Al Viro
2025-09-03 4:55 ` [PATCH v3 45/65] path_mount(): " Al Viro
2025-09-03 4:55 ` [PATCH v3 46/65] may_copy_tree(), __do_loopback(): " Al Viro
2025-09-03 4:55 ` [PATCH v3 47/65] path_umount(): " Al Viro
2025-09-03 4:55 ` [PATCH v3 48/65] constify can_move_mount_beneath() arguments Al Viro
2025-09-03 4:55 ` [PATCH v3 49/65] do_move_mount_old(): use __free(path_put) Al Viro
2025-09-03 4:55 ` [PATCH v3 50/65] do_mount(): " Al Viro
2025-09-03 4:55 ` [PATCH v3 51/65] umount_tree(): take all victims out of propagation graph at once Al Viro
2025-09-03 4:55 ` [PATCH v3 52/65] ecryptfs: get rid of pointless mount references in ecryptfs dentries Al Viro
2025-09-03 4:55 ` [PATCH v3 53/65] fs/namespace.c: sanitize descriptions for {__,}lookup_mnt() Al Viro
2025-09-03 4:55 ` [PATCH v3 54/63] open_detached_copy(): don't bother with mount_lock_hash() Al Viro
2025-09-03 4:55 ` [PATCH v3 54/65] path_has_submounts(): use guard(mount_locked_reader) Al Viro
2025-09-03 4:55 ` [PATCH v3 55/65] open_detached_copy(): don't bother with mount_lock_hash() Al Viro
2025-09-03 4:55 ` [PATCH v3 55/63] open_detached_copy(): separate creation of namespace into helper Al Viro
2025-09-03 4:55 ` [PATCH v3 56/63] mnt_ns_tree_remove(): DTRT if mnt_ns had never been added to mnt_ns_list Al Viro
2025-09-03 4:55 ` [PATCH v3 56/65] open_detached_copy(): separate creation of namespace into helper Al Viro
2025-09-03 4:55 ` [PATCH v3 57/63] copy_mnt_ns(): use the regular mechanism for freeing empty mnt_ns on failure Al Viro
2025-09-03 4:55 ` [PATCH v3 57/65] mnt_ns_tree_remove(): DTRT if mnt_ns had never been added to mnt_ns_list Al Viro
2025-09-03 4:55 ` [PATCH v3 58/63] copy_mnt_ns(): use guards Al Viro
2025-09-03 4:55 ` [PATCH v3 58/65] copy_mnt_ns(): use the regular mechanism for freeing empty mnt_ns on failure Al Viro
2025-09-03 4:55 ` [PATCH v3 59/65] copy_mnt_ns(): use guards Al Viro
2025-09-03 4:55 ` [PATCH v3 59/63] simplify the callers of mnt_unhold_writers() Al Viro
2025-09-03 4:55 ` [PATCH v3 60/63] setup_mnt(): primitive for connecting a mount to filesystem Al Viro
2025-09-03 4:55 ` [PATCH v3 60/65] simplify the callers of mnt_unhold_writers() Al Viro
2025-09-03 4:55 ` [PATCH v3 61/63] preparations to taking MNT_WRITE_HOLD out of ->mnt_flags Al Viro
2025-09-03 4:55 ` [PATCH v3 61/65] setup_mnt(): primitive for connecting a mount to filesystem Al Viro
2025-09-03 4:55 ` [PATCH v3 62/65] preparations to taking MNT_WRITE_HOLD out of ->mnt_flags Al Viro
2025-09-03 4:55 ` [PATCH v3 62/63] struct mount: relocate MNT_WRITE_HOLD bit Al Viro
2025-09-03 4:55 ` [PATCH v3 63/65] " Al Viro
2025-09-03 4:55 ` [PATCH v3 63/63] WRITE_HOLD machinery: no need for to bump mount_lock seqcount Al Viro
2025-09-03 4:55 ` [PATCH v3 64/65] " Al Viro
2025-09-03 4:55 ` [PATCH v3 65/65] constify {__,}mnt_is_readonly() Al Viro
2025-09-03 5:08 ` [PATCHES v3][RFC][CFT] mount-related stuff Al Viro
2025-09-03 14:47 ` Linus Torvalds
2025-09-03 18:14 ` Al Viro
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20250903045537.2579614-14-viro@zeniv.linux.org.uk \
--to=viro@zeniv.linux.org.uk \
--cc=brauner@kernel.org \
--cc=jack@suse.cz \
--cc=linux-fsdevel@vger.kernel.org \
--cc=torvalds@linux-foundation.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).