From 6eda7d18318ad48e4e49515ed55f20230b670ed9 Mon Sep 17 00:00:00 2001 From: Kent Overstreet Date: Fri, 1 Aug 2025 18:33:22 -0400 Subject: 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 --- c_src/tools-util.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'c_src/tools-util.c') 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])); -- cgit v1.2.3