depot/third_party/nixpkgs/pkgs/tools/filesystems/bcache-tools/bcache-udev-modern.patch
Default email 8ac5e011d6 Project import generated by Copybara.
GitOrigin-RevId: 2c3273caa153ee8eb5786bc8141b85b859e7efd7
2020-04-24 19:36:52 -04:00

52 lines
2.1 KiB
Diff

This patch does two things:
1) Drops probe-bcache, so now new util-linux detecting functionality is used.
2) Drops bcache-register, using kmod (built in udev) and moving registering device
into rule using 'sh'.
This reduces things that need to be present in initrd, replacing them with already
existing functionality and reducing overall initrd size.
diff --git a/69-bcache.rules b/69-bcache.rules
index 5d28e70..6a52893 100644
--- a/69-bcache.rules
+++ b/69-bcache.rules
@@ -10,15 +10,11 @@ KERNEL=="fd*|sr*", GOTO="bcache_end"
# It recognised bcache (util-linux 2.24+)
ENV{ID_FS_TYPE}=="bcache", GOTO="bcache_backing_found"
# It recognised something else; bail
-ENV{ID_FS_TYPE}=="?*", GOTO="bcache_backing_end"
-
-# Backing devices: scan, symlink, register
-IMPORT{program}="probe-bcache -o udev $tempnode"
-ENV{ID_FS_TYPE}!="bcache", GOTO="bcache_backing_end"
-ENV{ID_FS_UUID_ENC}=="?*", SYMLINK+="disk/by-uuid/$env{ID_FS_UUID_ENC}"
+GOTO="bcache_backing_end"
LABEL="bcache_backing_found"
-RUN+="bcache-register $tempnode"
+RUN{builtin}+="kmod load bcache"
+RUN+="/bin/sh -c 'echo $tempnode > /sys/fs/bcache/register_quiet'"
LABEL="bcache_backing_end"
# Cached devices: symlink
diff --git a/Makefile b/Makefile
index 3f8d87b..15638a7 100644
--- a/Makefile
+++ b/Makefile
@@ -9,7 +9,7 @@ all: make-bcache probe-bcache bcache-super-show
install: make-bcache probe-bcache bcache-super-show
$(INSTALL) -m0755 make-bcache bcache-super-show $(DESTDIR)${PREFIX}/sbin/
- $(INSTALL) -m0755 probe-bcache bcache-register $(DESTDIR)$(UDEVLIBDIR)/
+# $(INSTALL) -m0755 probe-bcache bcache-register $(DESTDIR)$(UDEVLIBDIR)/
$(INSTALL) -m0644 69-bcache.rules $(DESTDIR)$(UDEVLIBDIR)/rules.d/
$(INSTALL) -m0644 -- *.8 $(DESTDIR)${PREFIX}/share/man/man8/
$(INSTALL) -D -m0755 initramfs/hook $(DESTDIR)/usr/share/initramfs-tools/hooks/bcache
diff --git a/bcache-register b/bcache-register
index 9b592bc..75b4faf 100755
--- a/bcache-register
+++ b/bcache-register
@@ -1,4 +1,3 @@
#!/bin/sh
-/sbin/modprobe -qba bcache
test -f /sys/fs/bcache/register_quiet && echo "$1" > /sys/fs/bcache/register_quiet