summaryrefslogtreecommitdiff
path: root/c_src
diff options
context:
space:
mode:
authorKent Overstreet <kent.overstreet@linux.dev>2025-04-13 09:13:51 -0400
committerKent Overstreet <kent.overstreet@linux.dev>2025-04-13 21:10:24 -0400
commit7b35cb1e4a4b5fa01f9be108192af0b3036229c3 (patch)
treec923383e2a971b7658c4e1940bad2cf6c234125e /c_src
parent4f5dba7a87d4534f232449b9d23a1b972e2f6d28 (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.c55
-rw-r--r--c_src/cmd_data.c49
-rw-r--r--c_src/cmd_device.c81
-rw-r--r--c_src/cmds.h19
-rw-r--r--c_src/tools-util.c11
-rw-r--r--c_src/tools-util.h2
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 */