Re: [PATCH] vfs: Don't reject unknown parameters

From: Miklos Szeredi
Date: Tue Dec 17 2019 - 13:08:49 EST


On Tue, Dec 17, 2019 at 6:49 PM David Howells <dhowells@xxxxxxxxxx> wrote:
>
> Miklos Szeredi <miklos@xxxxxxxxxx> wrote:
>
> > > So you could bloody well just leave recognition (and handling) of "source"
> > > to the caller, leaving you with just this:
> > >
> > > if (strcmp(param->key, "source") == 0)
> > > return -ENOPARAM;
> > > /* Just log an error for backwards compatibility */
> > > errorf(fc, "%s: Unknown parameter '%s'", fc->fs_type->name, param->key);
> > > return 0;
> >
> > Which is fine for the old mount(2) interface.
> >
> > But we have a brand new API as well; do we really need to carry these
> > backward compatibility issues forward? I mean checking if a
> > param/flag is supported or not *is* useful and lacking that check is
> > the source of numerous headaches in legacy interfaces (just take the
> > open(2) example and the introduction of O_TMPFILE).
>
> The problem with what you're suggesting is that you can't then make
> /sbin/mount to use the new syscalls because that would change userspace
> behaviour - unless you either teach /sbin/mount which filesystems discard
> which errors from unrecognised options or pass a flag to the kernel to shift
> into or out of 'strict' mode.

The latter has minor cost, so we can add it easily. Long term I think
it makes sense to move this mess up to userspace, and hence let
util-linux deal with it.

Thanks,
Miklos