Re: [PATCH v2] Revert "fuse: Apply flags2 only when userspace set the FUSE_INIT_EXT"

From: Greg Kroah-Hartman
Date: Fri Oct 27 2023 - 08:46:31 EST


On Fri, Oct 27, 2023 at 02:36:55PM +0200, Miklos Szeredi wrote:
> On Fri, Oct 27, 2023 at 12:40 PM Greg Kroah-Hartman
> <gregkh@xxxxxxxxxxxxxxxxxxx> wrote:
> >
> > On Wed, Oct 25, 2023 at 03:17:09PM +0200, Miklos Szeredi wrote:
>
> > > I don't think the Android use case counts as a regression.
> >
> > Why not? In the changelog for this commit, it says:
> >
> > There is a risk with this change, though - it might break existing user
> > space libraries, which are already using flags2 without setting
> > FUSE_INIT_EXT.
> >
> > And that's exactly what Android was doing. Not all the world uses libfuse,
> > unfortunatly.
>
> No, this is not about libfuse or not libfuse. It's about upstream or
> downstream. If upstream maintainers would need to care about
> downstream regressions, then it would be hell.

I agree, that's not what I'm saying here.

> How should Android handle this? Here's how: they have an internal
> patch, which conflicts with the patch they want to revert. Well, let
> them revert that patch in their kernel. It's not like it's a big
> maintenance burden, since it's just a few lines. This is the sort of
> thing that downstream maintainers do all the time.
>
> It's a no-brainer, what are we talking about then?

I'm talking about a patch where you are changing the existing
user/kernel api by filtering out values that you previously accepted.
And it was done in a patch saying "this might break userspace", and
guess what, it did!

So why not revert it as obviously you all anticipated that this might
happen?

The "internal" patch from Android was just using the upper values of the
fuse api because they didn't want to conflict with the upstream values
before their code was accepted (and it was submitted already, but not
accepted.)

So how do you want developers to work on changes before they are
accepted with this user/kernel numbering scheme that you have? You just
broke anyone who was using a not-accepted-in-the-tree value, right?

thanks,

greg k-h