From: Maxime Bizon Date: Sat, 19 Oct 2019 19:24:11 +0000 (-0400) Subject: cramfs: fix usage on non-MTD device X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=3e5aeec0e267d4422a4e740ce723549a3098a4d1;p=linux.git cramfs: fix usage on non-MTD device When both CONFIG_CRAMFS_MTD and CONFIG_CRAMFS_BLOCKDEV are enabled, if we fail to mount on MTD, we don't try on block device. Note: this relies upon cramfs_mtd_fill_super() leaving no side effects on fc state in case of failure; in general, failing get_tree_...() does *not* mean "fine to try again"; e.g. parsed options might've been consumed by fill_super callback and freed on failure. Fixes: 74f78fc5ef43 ("vfs: Convert cramfs to use the new mount API") Signed-off-by: Maxime Bizon Signed-off-by: Nicolas Pitre Signed-off-by: Al Viro --- diff --git a/fs/cramfs/inode.c b/fs/cramfs/inode.c index d12ea28836a54..2f04024c3588e 100644 --- a/fs/cramfs/inode.c +++ b/fs/cramfs/inode.c @@ -958,8 +958,8 @@ static int cramfs_get_tree(struct fs_context *fc) if (IS_ENABLED(CONFIG_CRAMFS_MTD)) { ret = get_tree_mtd(fc, cramfs_mtd_fill_super); - if (ret < 0) - return ret; + if (!ret) + return 0; } if (IS_ENABLED(CONFIG_CRAMFS_BLOCKDEV)) ret = get_tree_bdev(fc, cramfs_blkdev_fill_super);