[systemd-devel] [PATCH] allow systemd to manage loop device partitions

Kevin Wells wellsie1116 at gmail.com
Wed Jul 30 19:00:38 PDT 2014


Hello,

A recent change to udev prevented loop partitions (ex. /dev/loop0p2) from
being managed by systemd.  I'd like to modify the rule to match only what
was intended, loop devices that aren't yet attached to anything.

git format-patch below.  I've never submitted a patch before, please let me
know if I did this wrong.


SYSTEMD_READY is currently set to 0 for all loop devices (loop[0-9]*)
that do not have a backing_file. Partitioned loop devices (ex. loop0p1),
however, are matched by this rule and excluded by systemd even though
they are active devices.

This change adds an additional check to the rule, ensuring that only
top level loop devices (loop[0-9]+$) are excluded from systemd.
---
 rules/99-systemd.rules.in | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/rules/99-systemd.rules.in b/rules/99-systemd.rules.in
index c3ef81b..aa435c4 100644
--- a/rules/99-systemd.rules.in
+++ b/rules/99-systemd.rules.in
@@ -23,7 +23,7 @@ SUBSYSTEM=="block", ENV{DEVTYPE}=="disk", KERNEL=="md*",
TEST!="md/array_state",
 SUBSYSTEM=="block", ENV{DEVTYPE}=="disk", KERNEL=="md*",
ATTR{md/array_state}=="|clear|inactive", ENV{SYSTEMD_READY}="0"

 # Ignore loop devices that don't have any file attached
-SUBSYSTEM=="block", KERNEL=="loop[0-9]*", TEST!="loop/backing_file",
ENV{SYSTEMD_READY}="0"
+SUBSYSTEM=="block", KERNEL=="loop[0-9]*", ENV{DEVTYPE}=="disk",
TEST!="loop/backing_file", ENV{SYSTEMD_READY}="0"

 # Ignore nbd devices in the "add" event, with "change" the nbd is ready
 ACTION=="add", SUBSYSTEM=="block", KERNEL=="nbd*", ENV{SYSTEMD_READY}="0"
-- 
2.0.3


Why add the check I did?
inactive loop devices have a DEVTYPE of disk and no backing file
active loop devices have a DEVTYPE of disk and a backing file
active loop partitions (loop*p*) have a DEVTYPE of partition and no backing
file

So, this change selects on both a DEVTYPE of disk and no backing file, so
we only get inactive loop devices, and not loop partitions, that might just
happen to be my root partition.

Thanks!

Kevin
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/systemd-devel/attachments/20140730/bd6b0738/attachment.html>


More information about the systemd-devel mailing list