From: Thomas Bertschinger Date: Sat, 25 May 2024 19:36:19 +0000 (-0600) Subject: bcachefs: allow passing full device path for target options X-Git-Tag: v6.11-rc1~120^2~100 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=51fc436c806c638512ea745579dbc4098a60b2d5;p=thirdparty%2Fkernel%2Flinux.git 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 Signed-off-by: Kent Overstreet --- diff --git a/fs/bcachefs/super.c b/fs/bcachefs/super.c index da735608d47c8..bbc9e5a926bb2 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;