diff options
author | Gabriel <g2p.code@gmail.com> | 2013-10-05 21:16:21 +0200 |
---|---|---|
committer | Gabriel <g2p.code@gmail.com> | 2013-10-05 22:16:22 +0200 |
commit | 0c7a484a5b09d710814451c06ad30e894deb7ff5 (patch) | |
tree | a2112a892f9f11c157c6b9c4d47db4f27e6fb6d0 /69-bcache.rules | |
parent | 866e21a35d40e8c5df75cdc7146da88c17cc18d1 (diff) |
udev: Fit into the standard rule sequencev1.0.2
Move the rule to run a bit later, after
the standard udev rules have called blkid.
Don't run blkid manually, and run probe-bcache
as a fallback which can be patched out in a
package that depends on util-linux 2.24+.
probe-bcache: bail if libblkid finds anything
Preserve our last-resort safety check here
in case earlier rules fail to call blkid.
Diffstat (limited to '69-bcache.rules')
-rw-r--r-- | 69-bcache.rules | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/69-bcache.rules b/69-bcache.rules new file mode 100644 index 0000000..3f89b12 --- /dev/null +++ b/69-bcache.rules @@ -0,0 +1,30 @@ +# register bcache devices as they come up +# man 7 udev for syntax + +SUBSYSTEM!="block", GOTO="bcache_end" +ACTION=="remove", GOTO="bcache_end" + +# blkid was run by the standard udev rules +# 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}="/sbin/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}" + +LABEL="bcache_backing_found" +SUBSYSTEM=="block", ACTION=="add|change", ENV{ID_FS_TYPE}=="bcache", \ + RUN+="bcache-register $tempnode" +LABEL="bcache_backing_end" + +# Cached devices: symlink +DRIVER=="bcache", ENV{CACHED_UUID}=="?*", \ + SYMLINK+="bcache/by-uuid/$env{CACHED_UUID}" +DRIVER=="bcache", ENV{CACHED_LABEL}=="?*", \ + SYMLINK+="bcache/by-label/$env{CACHED_LABEL}" + +LABEL="bcache_end" + |