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

From: David Howells
Date: Tue Dec 17 2019 - 12:49:18 EST


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.

David