aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Bertschinger <[email protected]>2024-05-25 13:36:19 -0600
committerKent Overstreet <[email protected]>2024-07-14 19:00:12 -0400
commit51fc436c806c638512ea745579dbc4098a60b2d5 (patch)
tree1c7cb74a997217170ff9b23325c0c2c9f8693134
parent3811f48aa3d6ab97b199bdf4bdacce7abe7cfdeb (diff)
bcachefs: allow passing full device path for target options
The output of mount options such as "metadata_target" in `/proc/mounts` uses the full path to the device. mount(8) from util-linux uses the output from `/proc/mounts` to pass existing mount options when performing a remount, so bcachefs should accept as input the same form that it prints as output. Without this change: $ mount -t bcachefs -o metadata_target=vdb /dev/vdb /mnt $ strace mount -o remount /mnt ... fsconfig(4, FSCONFIG_SET_STRING, "metadata_target", "/dev/vdb", 0) = -1 EINVAL (Invalid argument) ... Signed-off-by: Thomas Bertschinger <[email protected]> Signed-off-by: Kent Overstreet <[email protected]>
-rw-r--r--fs/bcachefs/super.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/fs/bcachefs/super.c b/fs/bcachefs/super.c
index da735608d47c..bbc9e5a926bb 100644
--- a/fs/bcachefs/super.c
+++ b/fs/bcachefs/super.c
@@ -2041,6 +2041,9 @@ err:
/* return with ref on ca->ref: */
struct bch_dev *bch2_dev_lookup(struct bch_fs *c, const char *name)
{
+ if (!strncmp(name, "/dev/", strlen("/dev/")))
+ name += strlen("/dev/");
+
for_each_member_device(c, ca)
if (!strcmp(name, ca->name))
return ca;