All of lore.kernel.org
 help / color / mirror / Atom feed
From: Christian Brauner <brauner@kernel.org>
To: Dave Chinner <david@fromorbit.com>
Cc: Matthew Wilcox <willy@infradead.org>,
	Christoph Hellwig <hch@infradead.org>,
	ksummit@lists.linux.dev, linux-fsdevel@vger.kernel.org
Subject: Re: [MAINTAINERS/KERNEL SUMMIT] Trust and maintenance of file systems
Date: Wed, 6 Sep 2023 17:59:59 +0200	[thread overview]
Message-ID: <20230906-halbrund-gesaugt-41a7c283eb8e@brauner> (raw)
In-Reply-To: <20230906-wildhasen-vorkehrungen-6ecb4ee012f1@brauner>

On Wed, Sep 06, 2023 at 05:06:29PM +0200, Christian Brauner wrote:
> On Wed, Sep 06, 2023 at 12:09:37PM +1000, Dave Chinner wrote:
> > On Wed, Sep 06, 2023 at 12:23:22AM +0100, Matthew Wilcox wrote:
> > > On Wed, Sep 06, 2023 at 09:06:21AM +1000, Dave Chinner wrote:
> > > > > Part 2: unmaintained file systems
> > > > > 
> > > > > A lot of our file system drivers are either de facto or formally
> > > > > unmaintained.  If we want to move the kernel forward by finishing
> > > > > API transitions (new mount API, buffer_head removal for the I/O path,
> > > > > ->writepage removal, etc) these file systems need to change as well
> > > > > and need some kind of testing.  The easiest way forward would be
> > > > > to remove everything that is not fully maintained, but that would
> > > > > remove a lot of useful features.
> > > > 
> > > > Linus has explicitly NACKed that approach.
> > > > 
> > > > https://lore.kernel.org/linux-fsdevel/CAHk-=wg7DSNsHY6tWc=WLeqDBYtXges_12fFk1c+-No+fZ0xYQ@mail.gmail.com/
> > > > 
> > > > Which is a problem, because historically we've taken code into
> > > > the kernel without requiring a maintainer, or the people who
> > > > maintained the code have moved on, yet we don't have a policy for
> > > > removing code that is slowly bit-rotting to uselessness.
> > > > 
> > > > > E.g. the hfsplus driver is unmaintained despite collecting odd fixes.
> > > > > It collects odd fixes because it is really useful for interoperating
> > > > > with MacOS and it would be a pity to remove it.  At the same time
> > > > > it is impossible to test changes to hfsplus sanely as there is no
> > > > > mkfs.hfsplus or fsck.hfsplus available for Linux.  We used to have
> > > > > one that was ported from the open source Darwin code drops, and
> > > > > I managed to get xfstests to run on hfsplus with them, but this
> > > > > old version doesn't compile on any modern Linux distribution and
> > > > > new versions of the code aren't trivially portable to Linux.
> > > > > 
> > > > > Do we have volunteers with old enough distros that we can list as
> > > > > testers for this code?  Do we have any other way to proceed?
> > > > >
> > > > > If we don't, are we just going to untested API changes to these
> > > > > code bases, or keep the old APIs around forever?
> > > > 
> > > > We do slowly remove device drivers and platforms as the hardware,
> > > > developers and users disappear. We do also just change driver APIs
> > > > in device drivers for hardware that no-one is actually able to test.
> > > > The assumption is that if it gets broken during API changes,
> > > > someone who needs it to work will fix it and send patches.
> > > > 
> > > > That seems to be the historical model for removing unused/obsolete
> > > > code from the kernel, so why should we treat unmaintained/obsolete
> > > > filesystems any differently?  i.e. Just change the API, mark it
> > > > CONFIG_BROKEN until someone comes along and starts fixing it...
> > > 
> > > Umm.  If I change ->write_begin and ->write_end to take a folio,
> > > convert only the filesystems I can test via Luis' kdevops and mark the
> > > rest as CONFIG_BROKEN, I can guarantee you that Linus will reject that
> > > pull request.
> > 
> > No, that's not what I was suggesting. I suggest that we -change all
> > the API users when we need to, but in doing so we also need to 
> > formalise the fact we do not know if the filesystems nobody can/will
> > maintain function correctly or not.
> > 
> > Reflect that with CONFIG_BROKEN or some other mechanism that
> > forces people to acknowledge that the filesystem implementation is
> > not fit for purpose before they attempt to use it. e.g.
> > write some code that emits a log warning about the filesystem being
> > unmaintained at mount time and should not be used in situations
> > where stability, security or data integrity guarantees are required.
> 
> In addition to this e need to involve low-level userspace. We already
> started this a while ago.
> 
> util-linux has already implemented X-mount.auto-fstypes which we
> requested. For example, X-mount.auto-fstypes="ext4,xfs" accepts only
> ext4 and xfs, and X-mount.auto-fstypes="novfat,reiserfs" accepts all
> filesystems except vfat and reiserfs.
> 
> https://github.com/util-linux/util-linux/commit/1592425a0a1472db3168cd9247f001d7c5dd84b6
> 
> IOW,
>         mount -t X-mount.auto-fstypes="ext4,xfs,btrfs,erofs" /dev/bla /mnt
> would only mount these for filesystems and refuse the rest.
> 
> Of course, that's optional so if userspace only uses
>         mount /dev/bla /mnt
> then libmount will currently happily mount anything that's on /dev/bla.
> 
> So adding another RFE to libmount to add support for a global allowlist
> or denylist of filesystems and refuse to mount anything else might also
> be a good thing. Actually, might go and do this now.

https://github.com/util-linux/util-linux/issues/2478

  reply	other threads:[~2023-09-06 16:00 UTC|newest]

Thread overview: 97+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-08-30 14:07 [MAINTAINERS/KERNEL SUMMIT] Trust and maintenance of file systems Christoph Hellwig
2023-09-05 23:06 ` Dave Chinner
2023-09-05 23:23   ` Matthew Wilcox
2023-09-06  2:09     ` Dave Chinner
2023-09-06 15:06       ` Christian Brauner
2023-09-06 15:59         ` Christian Brauner [this message]
2023-09-06 19:09         ` Geert Uytterhoeven
2023-09-08  8:34         ` Christoph Hellwig
2023-09-07  0:46     ` Bagas Sanjaya
2023-09-09 12:50     ` James Bottomley
2023-09-09 15:44       ` Matthew Wilcox
2023-09-10 19:51         ` James Bottomley
2023-09-10 20:19           ` Kent Overstreet
2023-09-10 21:15           ` Guenter Roeck
2023-09-11  3:10           ` Theodore Ts'o
2023-09-11 19:03             ` James Bottomley
2023-09-12  0:23               ` Dave Chinner
2023-09-12 16:52             ` H. Peter Anvin
2023-09-09 22:42       ` Kent Overstreet
2023-09-10  8:19         ` Geert Uytterhoeven
2023-09-10  8:37           ` Bernd Schubert
2023-09-10 16:35           ` Kent Overstreet
2023-09-10 17:26             ` Geert Uytterhoeven
2023-09-10 17:35               ` Kent Overstreet
2023-09-11  1:05         ` Dave Chinner
2023-09-11  1:29           ` Kent Overstreet
2023-09-11  2:07             ` Dave Chinner
2023-09-11 13:35               ` David Disseldorp
2023-09-11 17:45                 ` Bart Van Assche
2023-09-11 19:11                   ` David Disseldorp
2023-09-11 23:05                 ` Dave Chinner
2023-09-26  5:24           ` Eric W. Biederman
2023-09-08  8:55   ` Christoph Hellwig
2023-09-08 22:47     ` Dave Chinner
2023-09-06 22:32 ` Guenter Roeck
2023-09-06 22:54   ` Dave Chinner
2023-09-07  0:53     ` Bagas Sanjaya
2023-09-07  3:14       ` Dave Chinner
2023-09-07  1:53     ` Steven Rostedt
2023-09-07  2:22       ` Dave Chinner
2023-09-07  2:51         ` Steven Rostedt
2023-09-07  3:26           ` Matthew Wilcox
2023-09-07  8:04             ` Thorsten Leemhuis
2023-09-07 10:29               ` Christian Brauner
2023-09-07 11:18                 ` Thorsten Leemhuis
2023-09-07 12:04                   ` Matthew Wilcox
2023-09-07 12:57                   ` Guenter Roeck
2023-09-07 13:56                     ` Christian Brauner
2023-09-08  8:44                     ` Christoph Hellwig
2023-09-07  3:38           ` Dave Chinner
2023-09-07 11:18             ` Steven Rostedt
2023-09-13 16:43               ` Eric Sandeen
2023-09-13 16:58                 ` Guenter Roeck
2023-09-13 17:03                 ` Linus Torvalds
2023-09-15 22:48                   ` Dave Chinner
2023-09-16 19:44                     ` Steven Rostedt
2023-09-16 21:50                     ` James Bottomley
2023-09-17  1:40                       ` NeilBrown
2023-09-17 17:30                         ` Linus Torvalds
2023-09-17 18:09                           ` Linus Torvalds
2023-09-17 18:57                           ` Theodore Ts'o
2023-09-17 19:45                             ` Linus Torvalds
2023-09-18 11:14                               ` Jan Kara
2023-09-18 17:26                                 ` Linus Torvalds
2023-09-18 19:32                                   ` Jiri Kosina
2023-09-18 19:59                                     ` Linus Torvalds
2023-09-18 20:50                                       ` Theodore Ts'o
2023-09-18 22:48                                         ` Linus Torvalds
2023-09-18 20:33                                     ` H. Peter Anvin
2023-09-19  4:56                                   ` Dave Chinner
2023-09-25  9:43                                     ` Christoph Hellwig
2023-09-27 22:23                                 ` Dave Kleikamp
2023-09-19  1:15                           ` Dave Chinner
2023-09-19  5:17                             ` Matthew Wilcox
2023-09-19 16:34                               ` Theodore Ts'o
2023-09-19 16:45                                 ` Matthew Wilcox
2023-09-19 17:15                                   ` Linus Torvalds
2023-09-19 22:57                               ` Dave Chinner
2023-09-18 14:54                       ` Bill O'Donnell
2023-09-19  2:44                       ` Dave Chinner
2023-09-19 16:57                         ` James Bottomley
2023-09-25  9:38                   ` Christoph Hellwig
2023-09-25 14:14                     ` Dan Carpenter
2023-09-25 16:50                     ` Linus Torvalds
2023-09-07  9:48       ` Dan Carpenter
2023-09-07 11:04         ` Segher Boessenkool
2023-09-07 11:22           ` Steven Rostedt
2023-09-07 12:24             ` Segher Boessenkool
2023-09-07 11:23           ` Dan Carpenter
2023-09-07 12:30             ` Segher Boessenkool
2023-09-12  9:50               ` Richard Biener
2023-10-23  5:19                 ` Eric Gallager
2023-09-08  8:39       ` Christoph Hellwig
2023-09-08  8:38     ` Christoph Hellwig
2023-09-08 23:21       ` Dave Chinner
2023-09-07  0:48   ` Bagas Sanjaya
2023-09-07  3:07     ` Guenter Roeck

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=20230906-halbrund-gesaugt-41a7c283eb8e@brauner \
    --to=brauner@kernel.org \
    --cc=david@fromorbit.com \
    --cc=hch@infradead.org \
    --cc=ksummit@lists.linux.dev \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=willy@infradead.org \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.