From: "Theodore Ts'o" <tytso@mit.edu>
To: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Konstantin Ryabitsev <konstantin@linuxfoundation.org>,
Christian Brauner <brauner@kernel.org>,
Al Viro <viro@zeniv.linux.org.uk>,
linux-fsdevel@vger.kernel.org, Jan Kara <jack@suse.cz>
Subject: Re: [PATCHED][RFC][CFT] mount-related stuff
Date: Fri, 29 Aug 2025 08:30:33 -0400 [thread overview]
Message-ID: <20250829123033.GA2470272@mit.edu> (raw)
In-Reply-To: <CAHk-=wjcTwA5E7YT8KT6=87nQaJ78A0hqUAVGo9bYRWt9dTe3Q@mail.gmail.com>
On Wed, Aug 27, 2025 at 06:29:50PM -0700, Linus Torvalds wrote:
> On Wed, 27 Aug 2025 at 17:41, Konstantin Ryabitsev
> <konstantin@linuxfoundation.org> wrote:
> >
> > I'm not sure what you mean. The Link: trailer is added when the maintainer
> > pulls in the series into their tree.
>
> That's my point. Adding it to the commit at that point is entirely
> useless, because
>
> (a) that email doesn't have the *reason* for the patch (or rather, if
> it does, then the link to the email is pointless, since the *real*
> reason was mentioned already)
From a maintainer's perspective, the reason why I keep the link in is
because I'm dumb-ass lazy. My workflow involves looking at patchwork,
cutting-and-pasting the Message-Id, and then passing it to b4.
Looking through a 20 patch series to figure out which one rates a
Link: trailer, and which one doesn't is a pain in the *ss, and in the
off-chance that there *is* a meaningful and deep discussion, it would
be nice to be able to capture it. But it might be in patch #4; or
patch #12; or patches #14 and #15. Also, there might be an extended
conversation thread in the patch series description (patch #0) and it
would be useful to be able to get a link to it.
So here's a set of feature requests for b4.
(a) It would be cool(tm), if there was a way for b4 to automatically
detect whether or not there was a reply to a patch at the time that
"b4 am" is run; if there is, to include the patch series. If there
isn't an e-mail reply, skip the the Link: trailer.
(b) In the case of a patch series, it would be useful to include some
kind of trailer indicating that a group of patches are logically
grouped together (maybe a patch-series: that has the message id to
the the series header, or the first patch if there is no patch #0)
--- because one of the other ways that I figure out that a series
of commits are part of a patch series is by looking at the Link:
field since if the messages are generated using "git send-email"
it's usually obvious from the message id. This has also come up
from some of the folks who want this for their web-based review
systems. I don't care about that, but if it solves multiple use
cases at once, that's great.
(c) Include a link tag to the patch series description e-mail message
(if present) in the first commit of the patch series so it's
possible to read the patch #0 description of the patch series,
since otherwise this can get be hard to find in the git history.
(d) For bonus points, if there is a way to determine a link to the
previous versions of the patch series, it would be useful for to
incude link: tags to previous versions of the patch if and only if
there were e-mail comments to say, the v5, v12, and v27 versions
of the patch.
(e) If there is some way we can easily capture lore.kernel.org URL for
the vN-1 version of the patch series in the vN commit description
header, in "b4 prep" that would be *excellent*. I don't think it
can do this today, but if it can, can we make sure it's defaulted
to on, and then we should **really** market the heck out of b4
prep?
The bottom line is I'd love to make Linus less cranky; but I'd also love
it if I didn't have to do the extra work by hand. :-) Because if I do
have to do it by hand, I will probably screw up, and my preference has
been to err on the side of having the link, so it's there when I'm
having to code code archeology --- even if most of the time it's not
strictly speaking necessary.
Cheers,
- Ted
next prev parent reply other threads:[~2025-08-29 12:30 UTC|newest]
Thread overview: 326+ 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 [this message]
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 ` [PATCH v3 14/65] mnt_set_expiry(): " Al Viro
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
2025-09-04 0:17 ` Dave Chinner
2025-09-04 3:20 ` Al Viro
2025-09-04 5:55 ` Al Viro
2025-09-04 12:18 ` Al Viro
2025-09-04 18:59 ` Linus Torvalds
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=20250829123033.GA2470272@mit.edu \
--to=tytso@mit.edu \
--cc=brauner@kernel.org \
--cc=jack@suse.cz \
--cc=konstantin@linuxfoundation.org \
--cc=linux-fsdevel@vger.kernel.org \
--cc=torvalds@linux-foundation.org \
--cc=viro@zeniv.linux.org.uk \
/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).