]> git.sesse.net Git - bcachefs-tools-debian/commitdiff
Register devices with just udev.
authorGabriel <g2p.code@gmail.com>
Thu, 11 Apr 2013 14:44:03 +0000 (16:44 +0200)
committerKent Overstreet <koverstreet@google.com>
Fri, 12 Apr 2013 00:08:23 +0000 (17:08 -0700)
This means bcache devices will be registered earlier and in all
cases, not just when the rootfs fails to mount.

The initramfs hook is still there to ensure the bcache module
and udev rules are shipped if an initramfs is used.

61-bcache.rules
Makefile
bcache-register [new file with mode: 0755]
initramfs/hook
initramfs/script [deleted file]

index acedefe0e4ec32b7fe99644caec399668b2dcf3a..7857914aac7c08c094ac99fc6464011f1d3d43e9 100644 (file)
@@ -1,3 +1,8 @@
-KERNEL=="sd*", ENV{DEVTYPE}=="disk", IMPORT{program}="/sbin/probe-bcache -o udev $tempnode"
+# register bcache devices as they come up
+# man 7 udev for syntax
 
+SUBSYSTEM=="block", IMPORT{program}="/sbin/probe-bcache -o udev $tempnode"
 ENV{ID_FS_UUID_ENC}=="?*", SYMLINK+="disk/by-uuid/$env{ID_FS_UUID_ENC}"
+SUBSYSTEM=="block", ACTION=="add|change", ENV{ID_FS_TYPE}=="bcache", \
+        RUN+="bcache-register $tempnode"
+
index ce8c0c46a1140c69ddbf006cbaccb6585a879c0b..10ec79c64e8740bb2ef2154881619ece099c5d2a 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -8,7 +8,7 @@ install: make-bcache probe-bcache bcache-super-show
        install -m0755 make-bcache bcache-super-show    $(DESTDIR)${PREFIX}/sbin/
        install -m0755 probe-bcache     $(DESTDIR)/sbin/
        install -m0644 61-bcache.rules  $(DESTDIR)/lib/udev/rules.d/
-       -install -m0755 initramfs/script $(DESTDIR)/etc/initramfs-tools/scripts/init-premount/bcache
+       install -m0755 bcache-register  $(DESTDIR)/lib/udev/
        -install -m0755 initramfs/hook  $(DESTDIR)/etc/initramfs-tools/hooks/bcache
        install -m0644 -- *.8 $(DESTDIR)${PREFIX}/share/man/man8
 #      install -m0755 bcache-test $(DESTDIR)${PREFIX}/sbin/
diff --git a/bcache-register b/bcache-register
new file mode 100755 (executable)
index 0000000..bf93c7f
--- /dev/null
@@ -0,0 +1,4 @@
+#!/bin/sh
+modprobe -qba bcache
+test -f /sys/fs/bcache/register && echo "$1" > /sys/fs/bcache/register
+
index 3c429d0d49b8ab549f5c68a92a2da2f3cadc7412..ce328f3a6bc9695ffcf9b0084ce41e22194171a9 100755 (executable)
@@ -16,5 +16,7 @@ esac
 
 . /usr/share/initramfs-tools/hook-functions
 
-copy_exec /bin/mknod
+cp -pt "${DESTDIR}/lib/udev/rules.d" /lib/udev/rules.d/61-bcache.rules
+copy_exec /lib/udev/bcache-register
+copy_exec /sbin/probe-bcache
 manual_add_modules bcache
diff --git a/initramfs/script b/initramfs/script
deleted file mode 100755 (executable)
index 926d5d3..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-#!/bin/sh
-
-mountroot_fail()
-{
-       for i in `ls /dev/sd*`; do
-               echo    $i > /sys/fs/bcache/register_quiet
-       done
-
-#      for i in `ls /sys/dev/block/`; do
-#              DEV=/bcache_dev
-#
-#              mknod   $DEV b `echo $i|sed -e 's/:/ /'`
-#              echo    $DEV > /sys/fs/bcache/register_quiet
-#              rm      $DEV
-#      done
-}
-
-case $1 in
-prereqs)
-       exit 0
-       ;;
-mountfail)
-       mountroot_fail
-       exit 0
-       ;;
-esac
-
-. /scripts/functions
-
-add_mountroot_fail_hook "30-bcache"
-
-exit 0