jffs2: Fix mounting under new mount API
authorDavid Howells <dhowells@redhat.com>
Thu, 26 Sep 2019 14:21:18 +0000 (15:21 +0100)
committerAl Viro <viro@zeniv.linux.org.uk>
Thu, 26 Sep 2019 14:26:55 +0000 (10:26 -0400)
The mounting of jffs2 is broken due to the changes from the new mount API
because it specifies a "source" operation, but then doesn't actually
process it.  But because it specified it, it doesn't return -ENOPARAM and
the caller doesn't process it either and the source gets lost.

Fix this by simply removing the source parameter from jffs2 and letting the
VFS deal with it in the default manner.

To test it, enable CONFIG_MTD_MTDRAM and allow the default size and erase
block size parameters, then try and mount the /dev/mtdblock<N> file that
that creates as jffs2.  No need to initialise it.

Fixes: ec10a24f10c8 ("vfs: Convert jffs2 to use the new mount API")
Reported-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: David Howells <dhowells@redhat.com>
cc: David Woodhouse <dwmw2@infradead.org>
cc: Richard Weinberger <richard@nod.at>
cc: linux-mtd@lists.infradead.org
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
fs/jffs2/super.c

index cbe7063..0e6406c 100644 (file)
@@ -163,13 +163,11 @@ static const struct export_operations jffs2_export_ops = {
  * Opt_rp_size: size of reserved pool in KiB
  */
 enum {
-       Opt_source,
        Opt_override_compr,
        Opt_rp_size,
 };
 
 static const struct fs_parameter_spec jffs2_param_specs[] = {
-       fsparam_string  ("source",      Opt_source),
        fsparam_enum    ("compr",       Opt_override_compr),
        fsparam_u32     ("rp_size",     Opt_rp_size),
        {}