From: Al Viro <viro@zeniv.linux.org.uk>
To: Christian Brauner <brauner@kernel.org>
Cc: Allison Karlitskaya <lis@redhat.com>, linux-fsdevel@vger.kernel.org
Subject: Re: Apparent mount behaviour change in 6.15
Date: Fri, 23 May 2025 22:29:58 +0100 [thread overview]
Message-ID: <20250523212958.GJ2023217@ZenIV> (raw)
In-Reply-To: <20250523-aufweichen-dreizehn-c69ee4529b8b@brauner>
On Fri, May 23, 2025 at 10:41:14AM +0200, Christian Brauner wrote:
> On Fri, May 23, 2025 at 07:32:38AM +0100, Al Viro wrote:
> > On Thu, May 15, 2025 at 01:25:27PM +0200, Christian Brauner wrote:
> >
> > > Al, I want to kill this again and restore the pre v6.15 behavior.
> > > Allowing mount propagation for detached trees was a crazy
> > > idea on my part. It's a pain and it regresses userspace. If composefs is
> > > broken by this then systemd will absolutely get broken by my change as
> > > well.
> > >
> > > Something like this will allow to restore the status-quo:
> >
> > > -#define IS_MNT_NEW(m) (!(m)->mnt_ns)
> > > +#define IS_MNT_NEW(m) (!(m)->mnt_ns || is_anon_ns((m)->mnt_ns))
> >
> > FWIW, I'm not sure that ever had been quite correct, no matter how you
> > call the macro. I'm not up to building a counterexample right now,
> > will do in the morning...
>
> The point is that we can't do mount propagation with detached trees
> without regressing userspace. And we didn't do it before. I don't
> specifically care how we block this but it needs to go out again.
> Otherwise we release a kernel with the new semantics that regress
> userspace.
The problem is not in propagation *into* detached trees. All you need
is
A -> B -> C
(all in your normal namespace, nothing detached, etc.) followed by make-private
on B.
C should (and does) keep getting events from A. Now, have open_tree() create
a detached clone of B. Shouldn't affect anything between A, B and C, right?
With your patch doing open_tree before make-private B ends up with
no propagation from A to C... until the detached tree is closed.
See the problem? You have nodes on detached trees still in propagation graph.
And your variant _stops_ propagation at nodes in anon namespaces, not just
skips such nodes themselves.
This is bogus, IMO. I'm perfectly fine with propagate_one() returning 0
on anon_ns(m->mnt); that would refuse to propagate into *any* anon ns,
but won't screw the propagation between the mounts that are in normal, non-anon
namespaces.
next prev parent reply other threads:[~2025-05-23 21:30 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-05-15 4:06 Apparent mount behaviour change in 6.15 Allison Karlitskaya
2025-05-15 11:25 ` Christian Brauner
2025-05-23 6:32 ` Al Viro
2025-05-23 8:41 ` Christian Brauner
2025-05-23 21:29 ` Al Viro [this message]
2025-05-23 21:37 ` Al Viro
2025-05-23 23:22 ` Al Viro
2025-05-26 4:47 ` Christian Brauner
2025-05-26 21:32 ` Al Viro
2025-05-26 7:18 ` Allison Karlitskaya
2025-05-26 8:00 ` Allison Karlitskaya
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=20250523212958.GJ2023217@ZenIV \
--to=viro@zeniv.linux.org.uk \
--cc=brauner@kernel.org \
--cc=linux-fsdevel@vger.kernel.org \
--cc=lis@redhat.com \
/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