diff options
author | Thomas Bertschinger <[email protected]> | 2024-05-25 13:36:19 -0600 |
---|---|---|
committer | Kent Overstreet <[email protected]> | 2024-07-14 19:00:12 -0400 |
commit | 51fc436c806c638512ea745579dbc4098a60b2d5 (patch) | |
tree | 1c7cb74a997217170ff9b23325c0c2c9f8693134 | |
parent | 3811f48aa3d6ab97b199bdf4bdacce7abe7cfdeb (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.c | 3 |
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; |