diff options
Diffstat (limited to 'c_src/cmd_data.c')
-rw-r--r-- | c_src/cmd_data.c | 49 |
1 files changed, 33 insertions, 16 deletions
diff --git a/c_src/cmd_data.c b/c_src/cmd_data.c index 9dd2c15c..302c5a8c 100644 --- a/c_src/cmd_data.c +++ b/c_src/cmd_data.c @@ -10,19 +10,6 @@ #include "cmds.h" #include "libbcachefs.h" -int data_usage(void) -{ - puts("bcachefs data - manage filesystem data\n" - "Usage: bcachefs data <CMD> [OPTIONS]\n" - "\n" - "Commands:\n" - " rereplicate Rereplicate degraded data\n" - " job Kick off low level data jobs\n" - "\n" - "Report bugs to <linux-bcachefs@vger.kernel.org>"); - return 0; -} - static void data_rereplicate_usage(void) { puts("bcachefs data rereplicate\n" @@ -37,7 +24,7 @@ static void data_rereplicate_usage(void) exit(EXIT_SUCCESS); } -int cmd_data_rereplicate(int argc, char *argv[]) +static int cmd_data_rereplicate(int argc, char *argv[]) { int opt; @@ -78,7 +65,7 @@ static void data_scrub_usage(void) exit(EXIT_SUCCESS); } -int cmd_data_scrub(int argc, char *argv[]) +static int cmd_data_scrub(int argc, char *argv[]) { static const struct option longopts[] = { { "metadata", no_argument, NULL, 'm' }, @@ -283,7 +270,7 @@ static void data_job_usage(void) exit(EXIT_SUCCESS); } -int cmd_data_job(int argc, char *argv[]) +static int cmd_data_job(int argc, char *argv[]) { struct bch_ioctl_data op = { .start_btree = 0, @@ -326,3 +313,33 @@ int cmd_data_job(int argc, char *argv[]) return bchu_data(bcache_fs_open(fs_path), op); } + +static int data_usage(void) +{ + puts("bcachefs data - manage filesystem data\n" + "Usage: bcachefs data <CMD> [OPTIONS]\n" + "\n" + "Commands:\n" + " rereplicate Rereplicate degraded data\n" + " job Kick off low level data jobs\n" + "\n" + "Report bugs to <linux-bcachefs@vger.kernel.org>"); + return 0; +} + +int data_cmds(int argc, char *argv[]) +{ + char *cmd = pop_cmd(&argc, argv); + + if (argc < 1) + return data_usage(); + if (!strcmp(cmd, "rereplicate")) + return cmd_data_rereplicate(argc, argv); + if (!strcmp(cmd, "scrub")) + return cmd_data_scrub(argc, argv); + if (!strcmp(cmd, "job")) + return cmd_data_job(argc, argv); + + data_usage(); + return -EINVAL; +} |