diff options
-rw-r--r-- | fs/f2fs/super.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/fs/f2fs/super.c b/fs/f2fs/super.c index 4ffa95dd41df..3589d1ff97a3 100644 --- a/fs/f2fs/super.c +++ b/fs/f2fs/super.c @@ -730,10 +730,8 @@ static int parse_options(struct super_block *sb, char *options, bool is_remount) set_opt(sbi, DISABLE_ROLL_FORWARD); break; case Opt_norecovery: - /* this option mounts f2fs with ro */ + /* requires ro mount, checked in f2fs_default_check */ set_opt(sbi, NORECOVERY); - if (!f2fs_readonly(sb)) - return -EINVAL; break; case Opt_discard: if (!f2fs_hw_support_discard(sbi)) { @@ -1417,6 +1415,12 @@ static int f2fs_default_check(struct f2fs_sb_info *sbi) f2fs_err(sbi, "Allow to mount readonly mode only"); return -EROFS; } + + if (test_opt(sbi, NORECOVERY) && !f2fs_readonly(sbi->sb)) { + f2fs_err(sbi, "norecovery requires readonly mount"); + return -EINVAL; + } + return 0; } |