diff options
author | Kent Overstreet <kent.overstreet@linux.dev> | 2025-04-13 09:13:51 -0400 |
---|---|---|
committer | Kent Overstreet <kent.overstreet@linux.dev> | 2025-04-13 21:10:24 -0400 |
commit | 7b35cb1e4a4b5fa01f9be108192af0b3036229c3 (patch) | |
tree | c923383e2a971b7658c4e1940bad2cf6c234125e /c_src | |
parent | 4f5dba7a87d4534f232449b9d23a1b972e2f6d28 (diff) |
reshuffle device_cmds(), data_cmds()
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
Diffstat (limited to 'c_src')
-rw-r--r-- | c_src/bcachefs.c | 55 | ||||
-rw-r--r-- | c_src/cmd_data.c | 49 | ||||
-rw-r--r-- | c_src/cmd_device.c | 81 | ||||
-rw-r--r-- | c_src/cmds.h | 19 | ||||
-rw-r--r-- | c_src/tools-util.c | 11 | ||||
-rw-r--r-- | c_src/tools-util.h | 2 |
6 files changed, 103 insertions, 114 deletions
diff --git a/c_src/bcachefs.c b/c_src/bcachefs.c index 2f718147..9864680b 100644 --- a/c_src/bcachefs.c +++ b/c_src/bcachefs.c @@ -103,17 +103,6 @@ void bcachefs_usage(void) " version Display the version of the invoked bcachefs tool\n"); } -static char *pop_cmd(int *argc, char *argv[]) -{ - char *cmd = argv[1]; - if (!(*argc < 2)) - memmove(&argv[1], &argv[2], (*argc - 2) * sizeof(argv[0])); - (*argc)--; - argv[*argc] = NULL; - - return cmd; -} - int fs_cmds(int argc, char *argv[]) { char *cmd = pop_cmd(&argc, argv); @@ -128,47 +117,3 @@ int fs_cmds(int argc, char *argv[]) fs_usage(); return -EINVAL; } - -int device_cmds(int argc, char *argv[]) -{ - char *cmd = pop_cmd(&argc, argv); - - if (argc < 1) - return device_usage(); - if (!strcmp(cmd, "add")) - return cmd_device_add(argc, argv); - if (!strcmp(cmd, "remove")) - return cmd_device_remove(argc, argv); - if (!strcmp(cmd, "online")) - return cmd_device_online(argc, argv); - if (!strcmp(cmd, "offline")) - return cmd_device_offline(argc, argv); - if (!strcmp(cmd, "evacuate")) - return cmd_device_evacuate(argc, argv); - if (!strcmp(cmd, "set-state")) - return cmd_device_set_state(argc, argv); - if (!strcmp(cmd, "resize")) - return cmd_device_resize(argc, argv); - if (!strcmp(cmd, "resize-journal")) - return cmd_device_resize_journal(argc, argv); - - device_usage(); - return -EINVAL; -} - -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; -} 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; +} diff --git a/c_src/cmd_device.c b/c_src/cmd_device.c index d953055c..a06a3b31 100644 --- a/c_src/cmd_device.c +++ b/c_src/cmd_device.c @@ -23,25 +23,6 @@ #include "libbcachefs/opts.h" #include "tools-util.h" -int device_usage(void) -{ - puts("bcachefs device - manage devices within a running filesystem\n" - "Usage: bcachefs device <CMD> [OPTION]\n" - "\n" - "Commands:\n" - " add add a new device to an existing filesystem\n" - " remove remove a device from an existing filesystem\n" - " online re-add an existing member to a filesystem\n" - " offline take a device offline, without removing it\n" - " evacuate migrate data off a specific device\n" - " set-state mark a device as failed\n" - " resize resize filesystem on a device\n" - " resize-journal resize journal on a device\n" - "\n" - "Report bugs to <linux-bcachefs@vger.kernel.org>"); - return 0; -} - static void device_add_usage(void) { puts("bcachefs device add - add a device to an existing filesystem\n" @@ -58,7 +39,7 @@ static void device_add_usage(void) "Report bugs to <linux-bcachefs@vger.kernel.org>"); } -int cmd_device_add(int argc, char *argv[]) +static int cmd_device_add(int argc, char *argv[]) { static const struct option longopts[] = { { "label", required_argument, NULL, 'l' }, @@ -163,7 +144,7 @@ static void device_remove_usage(void) exit(EXIT_SUCCESS); } -int cmd_device_remove(int argc, char *argv[]) +static int cmd_device_remove(int argc, char *argv[]) { static const struct option longopts[] = { { "by-id", 0, NULL, 'i' }, @@ -229,7 +210,7 @@ static void device_online_usage(void) "Report bugs to <linux-bcachefs@vger.kernel.org>"); } -int cmd_device_online(int argc, char *argv[]) +static int cmd_device_online(int argc, char *argv[]) { int opt; @@ -266,7 +247,7 @@ static void device_offline_usage(void) "Report bugs to <linux-bcachefs@vger.kernel.org>"); } -int cmd_device_offline(int argc, char *argv[]) +static int cmd_device_offline(int argc, char *argv[]) { static const struct option longopts[] = { { "force", 0, NULL, 'f' }, @@ -310,7 +291,7 @@ static void device_evacuate_usage(void) "Report bugs to <linux-bcachefs@vger.kernel.org>"); } -int cmd_device_evacuate(int argc, char *argv[]) +static int cmd_device_evacuate(int argc, char *argv[]) { int opt; @@ -368,7 +349,7 @@ static void device_set_state_usage(void) exit(EXIT_SUCCESS); } -int cmd_device_set_state(int argc, char *argv[]) +static int cmd_device_set_state(int argc, char *argv[]) { static const struct option longopts[] = { { "force", 0, NULL, 'f' }, @@ -472,7 +453,7 @@ static void device_resize_usage(void) exit(EXIT_SUCCESS); } -int cmd_device_resize(int argc, char *argv[]) +static int cmd_device_resize(int argc, char *argv[]) { static const struct option longopts[] = { { "help", 0, NULL, 'h' }, @@ -574,7 +555,7 @@ static void device_resize_journal_usage(void) exit(EXIT_SUCCESS); } -int cmd_device_resize_journal(int argc, char *argv[]) +static int cmd_device_resize_journal(int argc, char *argv[]) { static const struct option longopts[] = { { "help", 0, NULL, 'h' }, @@ -656,3 +637,49 @@ int cmd_device_resize_journal(int argc, char *argv[]) } return 0; } + +static int device_usage(void) +{ + puts("bcachefs device - manage devices within a running filesystem\n" + "Usage: bcachefs device <CMD> [OPTION]\n" + "\n" + "Commands:\n" + " add add a new device to an existing filesystem\n" + " remove remove a device from an existing filesystem\n" + " online re-add an existing member to a filesystem\n" + " offline take a device offline, without removing it\n" + " evacuate migrate data off a specific device\n" + " set-state mark a device as failed\n" + " resize resize filesystem on a device\n" + " resize-journal resize journal on a device\n" + "\n" + "Report bugs to <linux-bcachefs@vger.kernel.org>"); + return 0; +} + +int device_cmds(int argc, char *argv[]) +{ + char *cmd = pop_cmd(&argc, argv); + + if (argc < 1) + return device_usage(); + if (!strcmp(cmd, "add")) + return cmd_device_add(argc, argv); + if (!strcmp(cmd, "remove")) + return cmd_device_remove(argc, argv); + if (!strcmp(cmd, "online")) + return cmd_device_online(argc, argv); + if (!strcmp(cmd, "offline")) + return cmd_device_offline(argc, argv); + if (!strcmp(cmd, "evacuate")) + return cmd_device_evacuate(argc, argv); + if (!strcmp(cmd, "set-state")) + return cmd_device_set_state(argc, argv); + if (!strcmp(cmd, "resize")) + return cmd_device_resize(argc, argv); + if (!strcmp(cmd, "resize-journal")) + return cmd_device_resize_journal(argc, argv); + + device_usage(); + return -EINVAL; +} diff --git a/c_src/cmds.h b/c_src/cmds.h index 82f28af2..19961a59 100644 --- a/c_src/cmds.h +++ b/c_src/cmds.h @@ -19,20 +19,9 @@ int fs_usage(void); int cmd_fs_usage(int argc, char *argv[]); int cmd_fs_top(int argc, char *argv[]); -int device_usage(void); -int cmd_device_add(int argc, char *argv[]); -int cmd_device_remove(int argc, char *argv[]); -int cmd_device_online(int argc, char *argv[]); -int cmd_device_offline(int argc, char *argv[]); -int cmd_device_evacuate(int argc, char *argv[]); -int cmd_device_set_state(int argc, char *argv[]); -int cmd_device_resize(int argc, char *argv[]); -int cmd_device_resize_journal(int argc, char *argv[]); - -int data_usage(void); -int cmd_data_rereplicate(int argc, char *argv[]); -int cmd_data_scrub(int argc, char *argv[]); -int cmd_data_job(int argc, char *argv[]); +int device_cmds(int argc, char *argv[]); + +int data_cmds(int argc, char *argv[]); int cmd_unlock(int argc, char *argv[]); int cmd_set_passphrase(int argc, char *argv[]); @@ -59,9 +48,7 @@ int cmd_subvolume_snapshot(int argc, char *argv[]); int cmd_fusemount(int argc, char *argv[]); void bcachefs_usage(void); -int device_cmds(int argc, char *argv[]); int fs_cmds(int argc, char *argv[]); -int data_cmds(int argc, char *argv[]); int subvolume_cmds(int argc, char *argv[]); #endif /* _CMDS_H */ diff --git a/c_src/tools-util.c b/c_src/tools-util.c index 1a749858..8403bc8b 100644 --- a/c_src/tools-util.c +++ b/c_src/tools-util.c @@ -761,3 +761,14 @@ darray_str get_or_split_cmdline_devs(int argc, char *argv[]) return ret; } + +char *pop_cmd(int *argc, char *argv[]) +{ + char *cmd = argv[1]; + if (!(*argc < 2)) + memmove(&argv[1], &argv[2], (*argc - 2) * sizeof(argv[0])); + (*argc)--; + argv[*argc] = NULL; + + return cmd; +} diff --git a/c_src/tools-util.h b/c_src/tools-util.h index 1694ad86..ca84dd01 100644 --- a/c_src/tools-util.h +++ b/c_src/tools-util.h @@ -213,4 +213,6 @@ unsigned version_parse(char *); darray_str get_or_split_cmdline_devs(int argc, char *argv[]); +char *pop_cmd(int *argc, char *argv[]); + #endif /* _TOOLS_UTIL_H */ |