aboutsummaryrefslogtreecommitdiff
path: root/fsck/main.c
diff options
context:
space:
mode:
authorJaegeuk Kim <jaegeuk@kernel.org>2018-04-19 11:33:14 -0700
committerJaegeuk Kim <jaegeuk@kernel.org>2018-07-13 22:46:00 -0700
commit1772e31423d73f59ae9823419b4aeccb3d6fe828 (patch)
tree54f2551773324f0cb4ac63ea512a5babdfc1c3c5 /fsck/main.c
parent646f002196b34a726f762c51add9d9acb9ebb4b7 (diff)
downloadf2fs-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.c31
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);