lkml.org 
[lkml]   [2023]   [Oct]   [27]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
SubjectRe: [PATCH v2] Revert "fuse: Apply flags2 only when userspace set the FUSE_INIT_EXT"
From


On 10/27/23 14:46, Greg Kroah-Hartman wrote:
> 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@linuxfoundation.org> 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?

It is not related to accepted-in-tree, but server (userspace) side now
has to set the flag "FUSE_INIT_EXT" itself, to tell the kernel it knows
about these flags and that these bits are initialized. Not setting these
flags would cause random issues with any fuse userspace/server side that
does not have zeroed 'struct fuse_init_out' - from my point of view that
is a regression as well. And In that sense the patch is a regression fix
- which now has other side effects.

Regarding out-of-tree development, I'm just right now in the position to
have to back port my own features (and while they are still in
development and being pushed upstream) to older distribution kernels.
This is one of the reasons why I currently look at each and every fuse
patch that is posted to the list - I'm looking if it can cause issues
for my company/myself and at the same time I can give a bit reviews and
maybe help Miklos that way. (@Amir overlay patches are on my todo list).
To be honest, given the rather huge Android overlay patch, I'm missing
reviews from the Android team... Especially for Amir, who took over
overlay work. And if Android team would have monitored and reviewed,
they would have noticed possible issue beforehand.

Thanks,
Bernd


\
 
 \ /
  Last update: 2023-10-27 15:22    [W:0.064 / U:0.264 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site