mbox series

[GIT,PULL,for,v6.7] autofs updates

Message ID 20231027-vfs-autofs-018bbf11ed67@brauner (mailing list archive)
State New, archived
Headers show
Series [GIT,PULL,for,v6.7] autofs updates | expand

Pull-request

git@gitolite.kernel.org:pub/scm/linux/kernel/git/vfs/vfs tags/vfs-6.7.autofs

Message

Christian Brauner Oct. 27, 2023, 2:33 p.m. UTC
Hey Linus,

/* Summary */
This ports autofs to the new mount api. The patchset has existed for
quite a while but never made it upstream. Ian picked it back up.

This also fixes a bug where fs_param_is_fd() was passed a garbage
param->dirfd but it expected it to be set to the fd that was used to set
param->file otherwise result->uint_32 contains nonsense. So make sure
it's set.

One less filesystem using the old mount api. We're getting there, albeit
rather slow. The last remaining major filesystem that hasn't converted
is btrfs. Patches exist - I even wrote them - but so far they haven't
made it upstream.

/* Testing */
clang: Debian clang version 16.0.6 (16)
gcc: gcc (Debian 13.2.0-5) 13.2.0

All patches are based on v6.6-rc2 and have been sitting in linux-next.
No build failures or warnings were observed.

/* Conflicts */
At the time of creating this PR no merge conflicts were reported from
linux-next and no merge conflicts showed up doing a test-merge with
current mainline.

The following changes since commit ce9ecca0238b140b88f43859b211c9fdfd8e5b70:

  Linux 6.6-rc2 (2023-09-17 14:40:24 -0700)

are available in the Git repository at:

  git@gitolite.kernel.org:pub/scm/linux/kernel/git/vfs/vfs tags/vfs-6.7.autofs

for you to fetch changes up to d3c50061765d4b5616dc97f5804fc18122598a9b:

  autofs: fix add autofs_parse_fd() (2023-10-24 11:04:45 +0200)

Please consider pulling these changes from the signed vfs-6.7.autofs tag.

Thanks!
Christian

----------------------------------------------------------------
vfs-6.7.autofs

----------------------------------------------------------------
Christian Brauner (1):
      fsconfig: ensure that dirfd is set to aux

Ian Kent (9):
      autofs: refactor autofs_prepare_pipe()
      autofs: add autofs_parse_fd()
      autofs: refactor super block info init
      autofs: reformat 0pt enum declaration
      autofs: refactor parse_options()
      autofs: validate protocol version
      autofs: convert autofs to use the new mount api
      autofs: fix protocol sub version setting
      autofs: fix add autofs_parse_fd()

 fs/autofs/autofs_i.h |  20 ++-
 fs/autofs/init.c     |   9 +-
 fs/autofs/inode.c    | 435 +++++++++++++++++++++++++++++++--------------------
 fs/fsopen.c          |   1 +
 4 files changed, 283 insertions(+), 182 deletions(-)

Comments

Ian Kent Oct. 29, 2023, 7:54 a.m. UTC | #1
On 27/10/23 22:33, Christian Brauner wrote:
> Hey Linus,
>
> /* Summary */
> This ports autofs to the new mount api. The patchset has existed for
> quite a while but never made it upstream. Ian picked it back up.
>
> This also fixes a bug where fs_param_is_fd() was passed a garbage
> param->dirfd but it expected it to be set to the fd that was used to set
> param->file otherwise result->uint_32 contains nonsense. So make sure
> it's set.
>
> One less filesystem using the old mount api. We're getting there, albeit
> rather slow. The last remaining major filesystem that hasn't converted
> is btrfs. Patches exist - I even wrote them - but so far they haven't
> made it upstream.

Yes, looks like about 39 still to be converted.


Just for information, excluding btrfs, what would you like to see as the

priority for conversion (in case me or any of my colleagues get a chance

to spend a bit more time on it)?


Ian
Christian Brauner Oct. 30, 2023, 10:24 a.m. UTC | #2
On Sun, Oct 29, 2023 at 03:54:52PM +0800, Ian Kent wrote:
> On 27/10/23 22:33, Christian Brauner wrote:
> > Hey Linus,
> > 
> > /* Summary */
> > This ports autofs to the new mount api. The patchset has existed for
> > quite a while but never made it upstream. Ian picked it back up.
> > 
> > This also fixes a bug where fs_param_is_fd() was passed a garbage
> > param->dirfd but it expected it to be set to the fd that was used to set
> > param->file otherwise result->uint_32 contains nonsense. So make sure
> > it's set.
> > 
> > One less filesystem using the old mount api. We're getting there, albeit
> > rather slow. The last remaining major filesystem that hasn't converted
> > is btrfs. Patches exist - I even wrote them - but so far they haven't
> > made it upstream.
> 
> Yes, looks like about 39 still to be converted.
> 
> 
> Just for information, excluding btrfs, what would you like to see as the
> 
> priority for conversion (in case me or any of my colleagues get a chance
> 
> to spend a bit more time on it)?

I think one way to prioritize them is by how likely they are to have
(more than a couple) active users.

So recently I've done overlayfs because aside from btrfs that was
probably one of the really actively used filesystems that hadn't yet
been converted. And that did surface some regression

So 9p, fat, devpts, f2fs, zonefs, ext2 are pretty obvious targets.
Judging from experience, the more mount options a filesystem has the
bigger the conversion patch will usually be.

Another way is by function. For example, we expose mount_bdev() which is
basically the legacy version of get_tree_bdev(). And they sort of are
almost copies of each other. So converting all callers to the new mount
api means we can get rid of mount_bdev(). But that's like 25 of the
remaining 39.

But in the end any filesystem that is converted is great.
Bill O'Donnell Oct. 30, 2023, 2:28 p.m. UTC | #3
On Sun, Oct 29, 2023 at 03:54:52PM +0800, Ian Kent wrote:
> On 27/10/23 22:33, Christian Brauner wrote:
> > Hey Linus,
> > 
> > /* Summary */
> > This ports autofs to the new mount api. The patchset has existed for
> > quite a while but never made it upstream. Ian picked it back up.
> > 
> > This also fixes a bug where fs_param_is_fd() was passed a garbage
> > param->dirfd but it expected it to be set to the fd that was used to set
> > param->file otherwise result->uint_32 contains nonsense. So make sure
> > it's set.
> > 
> > One less filesystem using the old mount api. We're getting there, albeit
> > rather slow. The last remaining major filesystem that hasn't converted
> > is btrfs. Patches exist - I even wrote them - but so far they haven't
> > made it upstream.
> 
> Yes, looks like about 39 still to be converted.
> 
> 
> Just for information, excluding btrfs, what would you like to see as the
> 
> priority for conversion (in case me or any of my colleagues get a chance
> 
> to spend a bit more time on it)?

I'm just starting to have a look at zonefs as a candidate.
-Bill
pr-tracker-bot@kernel.org Oct. 30, 2023, 8:05 p.m. UTC | #4
The pull request you sent on Fri, 27 Oct 2023 16:33:41 +0200:

> git@gitolite.kernel.org:pub/scm/linux/kernel/git/vfs/vfs tags/vfs-6.7.autofs

has been merged into torvalds/linux.git:
https://git.kernel.org/torvalds/c/0d63d8b2294b228147bf58def506dde35e57daef

Thank you!
Ian Kent Oct. 31, 2023, 2:04 a.m. UTC | #5
On 30/10/23 18:24, Christian Brauner wrote:
> On Sun, Oct 29, 2023 at 03:54:52PM +0800, Ian Kent wrote:
>> On 27/10/23 22:33, Christian Brauner wrote:
>>> Hey Linus,
>>>
>>> /* Summary */
>>> This ports autofs to the new mount api. The patchset has existed for
>>> quite a while but never made it upstream. Ian picked it back up.
>>>
>>> This also fixes a bug where fs_param_is_fd() was passed a garbage
>>> param->dirfd but it expected it to be set to the fd that was used to set
>>> param->file otherwise result->uint_32 contains nonsense. So make sure
>>> it's set.
>>>
>>> One less filesystem using the old mount api. We're getting there, albeit
>>> rather slow. The last remaining major filesystem that hasn't converted
>>> is btrfs. Patches exist - I even wrote them - but so far they haven't
>>> made it upstream.
>> Yes, looks like about 39 still to be converted.
>>
>>
>> Just for information, excluding btrfs, what would you like to see as the
>>
>> priority for conversion (in case me or any of my colleagues get a chance
>>
>> to spend a bit more time on it)?
> I think one way to prioritize them is by how likely they are to have
> (more than a couple) active users.
>
> So recently I've done overlayfs because aside from btrfs that was
> probably one of the really actively used filesystems that hadn't yet
> been converted. And that did surface some regression
>
> So 9p, fat, devpts, f2fs, zonefs, ext2 are pretty obvious targets.
> Judging from experience, the more mount options a filesystem has the
> bigger the conversion patch will usually be.
>
> Another way is by function. For example, we expose mount_bdev() which is
> basically the legacy version of get_tree_bdev(). And they sort of are
> almost copies of each other. So converting all callers to the new mount
> api means we can get rid of mount_bdev(). But that's like 25 of the
> remaining 39.
>
> But in the end any filesystem that is converted is great.

Thanks Christian, I know Bill was considering spending a bit of time on

this and I may have some cycles myself in the not too distant future. But

things change all too quickly so we'll need to see how it goes, ;)


Ian


I'll
Ian Kent Oct. 31, 2023, 2:12 a.m. UTC | #6
On 30/10/23 22:28, Bill O'Donnell wrote:
> On Sun, Oct 29, 2023 at 03:54:52PM +0800, Ian Kent wrote:
>> On 27/10/23 22:33, Christian Brauner wrote:
>>> Hey Linus,
>>>
>>> /* Summary */
>>> This ports autofs to the new mount api. The patchset has existed for
>>> quite a while but never made it upstream. Ian picked it back up.
>>>
>>> This also fixes a bug where fs_param_is_fd() was passed a garbage
>>> param->dirfd but it expected it to be set to the fd that was used to set
>>> param->file otherwise result->uint_32 contains nonsense. So make sure
>>> it's set.
>>>
>>> One less filesystem using the old mount api. We're getting there, albeit
>>> rather slow. The last remaining major filesystem that hasn't converted
>>> is btrfs. Patches exist - I even wrote them - but so far they haven't
>>> made it upstream.
>> Yes, looks like about 39 still to be converted.
>>
>>
>> Just for information, excluding btrfs, what would you like to see as the
>>
>> priority for conversion (in case me or any of my colleagues get a chance
>>
>> to spend a bit more time on it)?
> I'm just starting to have a look at zonefs as a candidate.
> -Bill
>
And devpts looks fairly straight forward and is used a lot ... I'll see if

I can get time to get that one done, ;)


Ian
Ian Kent Nov. 6, 2023, 6:22 a.m. UTC | #7
On 31/10/23 10:12, Ian Kent wrote:
> On 30/10/23 22:28, Bill O'Donnell wrote:
>> On Sun, Oct 29, 2023 at 03:54:52PM +0800, Ian Kent wrote:
>>> On 27/10/23 22:33, Christian Brauner wrote:
>>>> Hey Linus,
>>>>
>>>> /* Summary */
>>>> This ports autofs to the new mount api. The patchset has existed for
>>>> quite a while but never made it upstream. Ian picked it back up.
>>>>
>>>> This also fixes a bug where fs_param_is_fd() was passed a garbage
>>>> param->dirfd but it expected it to be set to the fd that was used 
>>>> to set
>>>> param->file otherwise result->uint_32 contains nonsense. So make sure
>>>> it's set.
>>>>
>>>> One less filesystem using the old mount api. We're getting there, 
>>>> albeit
>>>> rather slow. The last remaining major filesystem that hasn't converted
>>>> is btrfs. Patches exist - I even wrote them - but so far they haven't
>>>> made it upstream.
>>> Yes, looks like about 39 still to be converted.
>>>
>>>
>>> Just for information, excluding btrfs, what would you like to see as 
>>> the
>>>
>>> priority for conversion (in case me or any of my colleagues get a 
>>> chance
>>>
>>> to spend a bit more time on it)?
>> I'm just starting to have a look at zonefs as a candidate.
>> -Bill
>>
> And devpts looks fairly straight forward and is used a lot ... I'll 
> see if
Christian, David's original conversion patch for devpts looks like it's

still relevant, it also looks fairly small to the point that I'm wondering

if it's worth breaking it down into smaller patches.


Would you be ok with me just doing a straight patch apply, detailed review

and some testing before posting it?


David, are you ok with me resurrecting your conversion patch and posting it

on your behalf?


Ian
David Howells Nov. 6, 2023, 2:40 p.m. UTC | #8
Ian Kent <raven@themaw.net> wrote:

> David, are you ok with me resurrecting your conversion patch and posting it
> on your behalf?

Yes, that's fine.

David
Christian Brauner Nov. 6, 2023, 2:50 p.m. UTC | #9
> Christian, David's original conversion patch for devpts looks like it's
> 
> still relevant, it also looks fairly small to the point that I'm wondering
> 
> if it's worth breaking it down into smaller patches.

I vaguely remember that patch and no, for simple fses like devpts
breaking this into smaller chunks is probably not worth it.

These conversions patches often aren't easy to split nicely anyway.

> Would you be ok with me just doing a straight patch apply, detailed review
> 
> and some testing before posting it?

Sure.