summaryrefslogtreecommitdiff
path: root/c_src/tools-util.c
diff options
context:
space:
mode:
authorKent Overstreet <kent.overstreet@linux.dev>2025-08-01 18:33:22 -0400
committerKent Overstreet <kent.overstreet@linux.dev>2025-08-01 18:35:33 -0400
commit6eda7d18318ad48e4e49515ed55f20230b670ed9 (patch)
treed342e6b708ffe152fa8bf3ac1f2c79fa4ea581ef /c_src/tools-util.c
parentc97bc37ae8a7849df1c5edd14f25b0bd8bd913dd (diff)
get_or_split_cmdline_devs() now scans for component devices
Fix accidental splitbrain issues caused by writing to only some of a filesystem's devices: now, all subcommands that take member devices will scan for all members before opening. Fixes: https://github.com/koverstreet/bcachefs/issues/924 Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
Diffstat (limited to 'c_src/tools-util.c')
-rw-r--r--c_src/tools-util.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/c_src/tools-util.c b/c_src/tools-util.c
index 5a15f306..f48d3f21 100644
--- a/c_src/tools-util.c
+++ b/c_src/tools-util.c
@@ -22,6 +22,7 @@
#include "linux/sort.h"
#include "tools-util.h"
#include "libbcachefs/util.h"
+#include "src/rust_to_c.h"
void die(const char *fmt, ...)
{
@@ -777,7 +778,9 @@ darray_const_str get_or_split_cmdline_devs(int argc, char *argv[])
darray_const_str ret = {};
if (argc == 1) {
- bch2_split_devs(argv[0], &ret);
+ char *dev = bch2_scan_devices(argv[0]);
+
+ bch2_split_devs(dev, &ret);
} else {
for (unsigned i = 0; i < argc; i++)
darray_push(&ret, strdup(argv[i]));