aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKent Overstreet <kent.overstreet@linux.dev>2023-08-11 18:16:14 -0400
committerKent Overstreet <kent.overstreet@linux.dev>2023-08-11 18:32:23 -0400
commitae23e4541f020f3096ede3ac62ba6ab9cd37af3b (patch)
tree5543354772b13083b26529bf11bc3c0ba38968e5
parent0de1fb41b7bc97fabda78e5416a600a723a51c3d (diff)
downloadbcachefs-tools-ae23e4541f020f3096ede3ac62ba6ab9cd37af3b.tar.gz
fuse: Set fsname correctly
Also, add helpers for the fuse.bcachefs filesystem type; this means we can now test the fuse version with fstests. Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
-rw-r--r--Makefile3
-rw-r--r--cmd_fusemount.c11
-rwxr-xr-xmount.fuse.bcachefs3
-rw-r--r--packaging/bcachefs-tools.spec5
4 files changed, 21 insertions, 1 deletions
diff --git a/Makefile b/Makefile
index fea4ef0d..2556695d 100644
--- a/Makefile
+++ b/Makefile
@@ -155,6 +155,9 @@ install: bcachefs
$(INSTALL) -m0755 fsck.bcachefs $(DESTDIR)$(ROOT_SBINDIR)
$(INSTALL) -m0755 mkfs.bcachefs $(DESTDIR)$(ROOT_SBINDIR)
$(INSTALL) -m0755 mount.bcachefs $(DESTDIR)$(ROOT_SBINDIR)
+ $(INSTALL) -m0755 fsck.bcachefs $(DESTDIR)$(ROOT_SBINDIR)/fsck.fuse.bcachefs
+ $(INSTALL) -m0755 mkfs.bcachefs $(DESTDIR)$(ROOT_SBINDIR)/mkfs.fuse.bcachefs
+ $(INSTALL) -m0755 mount.fuse.bcachefs $(DESTDIR)$(ROOT_SBINDIR)
$(INSTALL) -m0644 -D bcachefs.8 -t $(DESTDIR)$(PREFIX)/share/man/man8/
$(INSTALL) -m0755 -D initramfs/script $(DESTDIR)$(INITRAMFS_SCRIPT)
$(INSTALL) -m0755 -D initramfs/hook $(DESTDIR)$(INITRAMFS_HOOK)
diff --git a/cmd_fusemount.c b/cmd_fusemount.c
index f07edb5a..c5776dfe 100644
--- a/cmd_fusemount.c
+++ b/cmd_fusemount.c
@@ -1217,6 +1217,17 @@ int cmd_fusemount(int argc, char *argv[])
}
tokenize_devices(&ctx);
+ struct printbuf fsname = PRINTBUF;
+ prt_printf(&fsname, "fsname=");
+ for (i = 0; i < ctx.nr_devices; ++i) {
+ if (i)
+ prt_str(&fsname, ":");
+ prt_str(&fsname, ctx.devices[i]);
+ }
+
+ fuse_opt_add_arg(&args, "-o");
+ fuse_opt_add_arg(&args, fsname.buf);
+
/* Open bch */
printf("Opening bcachefs filesystem on:\n");
for (i = 0; i < ctx.nr_devices; ++i)
diff --git a/mount.fuse.bcachefs b/mount.fuse.bcachefs
new file mode 100755
index 00000000..115b3d02
--- /dev/null
+++ b/mount.fuse.bcachefs
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+exec bcachefs fusemount "$@"
diff --git a/packaging/bcachefs-tools.spec b/packaging/bcachefs-tools.spec
index a8f023a8..24d93dee 100644
--- a/packaging/bcachefs-tools.spec
+++ b/packaging/bcachefs-tools.spec
@@ -45,10 +45,13 @@ rm -f %{buildroot}/%{_datadir}/initramfs-tools/scripts/local-premount/bcachefs
rm -f %{buildroot}/usr/lib/libbcachefs.so
%files
-%{_sbindir}/mount.bcachefs
%{_sbindir}/bcachefs
+%{_sbindir}/mount.bcachefs
%{_sbindir}/fsck.bcachefs
%{_sbindir}/mkfs.bcachefs
+%{_sbindir}/mount.fuse.bcachefs
+%{_sbindir}/fsck.fuse.bcachefs
+%{_sbindir}/mkfs.fuse.bcachefs
%{_mandir}/man8/bcachefs.8.gz
%changelog