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