diff options
author | Jaegeuk Kim <jaegeuk@kernel.org> | 2018-04-19 11:33:14 -0700 |
---|---|---|
committer | Jaegeuk Kim <jaegeuk@kernel.org> | 2018-07-13 22:46:00 -0700 |
commit | 1772e31423d73f59ae9823419b4aeccb3d6fe828 (patch) | |
tree | 54f2551773324f0cb4ac63ea512a5babdfc1c3c5 /fsck/main.c | |
parent | 646f002196b34a726f762c51add9d9acb9ebb4b7 (diff) | |
download | f2fs-tools-1772e31423d73f59ae9823419b4aeccb3d6fe828.tar.gz |
f2fs-tools: add -g to give default options
This patch adds -g option to set default options for specific environment.
I added it for android as a example.
# mkfs.f2fs -g android $dev
: gives "-d1 -f -O encrypt -O quota -w 4096"
# fsck.f2fs -g android $dev
: gives "-a"
Reviewed-by: Chao Yu <yuchao0@huawei.com>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
Diffstat (limited to 'fsck/main.c')
-rw-r--r-- | fsck/main.c | 31 |
1 files changed, 30 insertions, 1 deletions
diff --git a/fsck/main.c b/fsck/main.c index ca3b789..9256d21 100644 --- a/fsck/main.c +++ b/fsck/main.c @@ -53,6 +53,7 @@ void fsck_usage() MSG(0, " -a check/fix potential corruption, reported by f2fs\n"); MSG(0, " -d debug level [default:0]\n"); MSG(0, " -f check/fix entire partition\n"); + MSG(0, " -g add default options\n"); MSG(0, " -p preen mode [default:0 the same as -a [0|1]]\n"); MSG(0, " -S sparse_mode\n"); MSG(0, " -t show directory tree\n"); @@ -145,6 +146,20 @@ static void error_out(char *prog) MSG(0, "\nWrong program.\n"); } +static void __add_fsck_options(void) +{ + /* -a */ + c.auto_fix = 1; +} + +static void add_default_options(void) +{ + switch (c.defset) { + case CONF_ANDROID: + __add_fsck_options(); + } +} + void f2fs_parse_options(int argc, char *argv[]) { int option = 0; @@ -165,7 +180,7 @@ void f2fs_parse_options(int argc, char *argv[]) } if (!strcmp("fsck.f2fs", prog)) { - const char *option_string = ":ad:fp:q:StyV"; + const char *option_string = ":ad:fg:p:q:StyV"; int opt = 0; struct option long_opt[] = { {"dry-run", no_argument, 0, 1}, @@ -184,6 +199,10 @@ void f2fs_parse_options(int argc, char *argv[]) c.auto_fix = 1; MSG(0, "Info: Fix the reported corruption.\n"); break; + case 'g': + if (!strcmp(optarg, "android")) + c.defset = CONF_ANDROID; + break; case 'p': /* preen mode has different levels: * 0: default level, the same as -a @@ -284,6 +303,14 @@ void f2fs_parse_options(int argc, char *argv[]) MSG(0, "Info: Debug level = %d\n", c.dbg_lv); break; + case 'g': + if (!strcmp(optarg, "android")) { + c.defset = CONF_ANDROID; + MSG(0, "Info: Set conf for android\n"); + break; + } + err = EWRONG_OPT; + break; case 'i': if (strncmp(optarg, "0x", 2)) ret = sscanf(optarg, "%d", @@ -496,6 +523,8 @@ void f2fs_parse_options(int argc, char *argv[]) } } + add_default_options(); + if (optind >= argc) { MSG(0, "\tError: Device not specified\n"); error_out(prog); |