f2fs: support norecovery mount option
This patch adds a mount option, norecovery, which is mostly same as disable_roll_forward. The only difference is that norecovery should be activated with read-only mount option. This can be used when user wants to check whether f2fs is mountable or not without any recovery process. (e.g., xfstests/200) Reviewed-by: Chao Yu <chao2.yu@samsung.com> Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
This commit is contained in:
Родитель
dabc4a5c60
Коммит
2d834bf9ac
|
@ -106,6 +106,8 @@ background_gc=%s Turn on/off cleaning operations, namely garbage
|
||||||
Default value for this option is on. So garbage
|
Default value for this option is on. So garbage
|
||||||
collection is on by default.
|
collection is on by default.
|
||||||
disable_roll_forward Disable the roll-forward recovery routine
|
disable_roll_forward Disable the roll-forward recovery routine
|
||||||
|
norecovery Disable the roll-forward recovery routine, mounted read-
|
||||||
|
only (i.e., -o ro,disable_roll_forward)
|
||||||
discard Issue discard/TRIM commands when a segment is cleaned.
|
discard Issue discard/TRIM commands when a segment is cleaned.
|
||||||
no_heap Disable heap-style segment allocation which finds free
|
no_heap Disable heap-style segment allocation which finds free
|
||||||
segments for data from the beginning of main area, while
|
segments for data from the beginning of main area, while
|
||||||
|
|
|
@ -42,6 +42,7 @@ static struct kset *f2fs_kset;
|
||||||
enum {
|
enum {
|
||||||
Opt_gc_background,
|
Opt_gc_background,
|
||||||
Opt_disable_roll_forward,
|
Opt_disable_roll_forward,
|
||||||
|
Opt_norecovery,
|
||||||
Opt_discard,
|
Opt_discard,
|
||||||
Opt_noheap,
|
Opt_noheap,
|
||||||
Opt_user_xattr,
|
Opt_user_xattr,
|
||||||
|
@ -62,6 +63,7 @@ enum {
|
||||||
static match_table_t f2fs_tokens = {
|
static match_table_t f2fs_tokens = {
|
||||||
{Opt_gc_background, "background_gc=%s"},
|
{Opt_gc_background, "background_gc=%s"},
|
||||||
{Opt_disable_roll_forward, "disable_roll_forward"},
|
{Opt_disable_roll_forward, "disable_roll_forward"},
|
||||||
|
{Opt_norecovery, "norecovery"},
|
||||||
{Opt_discard, "discard"},
|
{Opt_discard, "discard"},
|
||||||
{Opt_noheap, "no_heap"},
|
{Opt_noheap, "no_heap"},
|
||||||
{Opt_user_xattr, "user_xattr"},
|
{Opt_user_xattr, "user_xattr"},
|
||||||
|
@ -287,6 +289,12 @@ static int parse_options(struct super_block *sb, char *options)
|
||||||
case Opt_disable_roll_forward:
|
case Opt_disable_roll_forward:
|
||||||
set_opt(sbi, DISABLE_ROLL_FORWARD);
|
set_opt(sbi, DISABLE_ROLL_FORWARD);
|
||||||
break;
|
break;
|
||||||
|
case Opt_norecovery:
|
||||||
|
/* this option mounts f2fs with ro */
|
||||||
|
set_opt(sbi, DISABLE_ROLL_FORWARD);
|
||||||
|
if (!f2fs_readonly(sb))
|
||||||
|
return -EINVAL;
|
||||||
|
break;
|
||||||
case Opt_discard:
|
case Opt_discard:
|
||||||
set_opt(sbi, DISCARD);
|
set_opt(sbi, DISCARD);
|
||||||
break;
|
break;
|
||||||
|
|
Загрузка…
Ссылка в новой задаче