summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--61-bcache.rules7
-rw-r--r--Makefile2
-rwxr-xr-xbcache-register4
-rwxr-xr-xinitramfs/hook4
-rwxr-xr-xinitramfs/script32
5 files changed, 14 insertions, 35 deletions
diff --git a/61-bcache.rules b/61-bcache.rules
index acedefe..7857914 100644
--- a/61-bcache.rules
+++ b/61-bcache.rules
@@ -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"
+
diff --git a/Makefile b/Makefile
index ce8c0c4..10ec79c 100644
--- 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
index 0000000..bf93c7f
--- /dev/null
+++ b/bcache-register
@@ -0,0 +1,4 @@
+#!/bin/sh
+modprobe -qba bcache
+test -f /sys/fs/bcache/register && echo "$1" > /sys/fs/bcache/register
+
diff --git a/initramfs/hook b/initramfs/hook
index 3c429d0..ce328f3 100755
--- a/initramfs/hook
+++ b/initramfs/hook
@@ -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
index 926d5d3..0000000
--- a/initramfs/script
+++ /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