From 0e8856d25ab71764a279c2377ae593c0f2460d8f Mon Sep 17 00:00:00 2001 From: g0tar Date: Thu, 7 Sep 2017 09:58:12 +0200 Subject: [PATCH] assemble multidevice btrfs volumes without external tools (#6607) assemble multidevice btrfs volumes without external tools This self-contained approach introduce very little overhead, unless someone has a large number of devices composing many btrfs volumes, in which case btrfs device scan would be faster. Still, having robust implementation is a nice to have alternative for btrfs-progs. --- rules/{64-btrfs.rules => 64-btrfs.rules.in} | 3 +++ rules/meson.build | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) rename rules/{64-btrfs.rules => 64-btrfs.rules.in} (71%) diff --git a/rules/64-btrfs.rules b/rules/64-btrfs.rules.in similarity index 71% rename from rules/64-btrfs.rules rename to rules/64-btrfs.rules.in index fe0100131e..5b86b9b8e9 100644 --- a/rules/64-btrfs.rules +++ b/rules/64-btrfs.rules.in @@ -10,4 +10,7 @@ IMPORT{builtin}="btrfs ready $devnode" # mark the device as not ready to be used by the system ENV{ID_BTRFS_READY}=="0", ENV{SYSTEMD_READY}="0" +# reconsider pending devices in case when multidevice volume awaits +ENV{ID_BTRFS_READY}=="1", RUN+="@rootlibexecdir@/udevadm trigger -s block -p ID_BTRFS_READY=0" + LABEL="btrfs_end" diff --git a/rules/meson.build b/rules/meson.build index 7f4725ad65..1bb43147e3 100644 --- a/rules/meson.build +++ b/rules/meson.build @@ -11,7 +11,6 @@ rules = files(''' 60-persistent-v4l.rules 60-sensor.rules 60-serial.rules - 64-btrfs.rules 70-joystick.rules 70-mouse.rules 70-touchpad.rules @@ -27,6 +26,7 @@ install_data(rules, rules_in = ''' 50-udev-default.rules + 64-btrfs.rules 99-systemd.rules '''.split()