summaryrefslogtreecommitdiff
path: root/rules/60-cdrom_id.rules
diff options
context:
space:
mode:
authorMartin Pitt <martin.pitt@ubuntu.com>2015-01-28 13:57:47 +0100
committerAnthony G. Basile <blueness@gentoo.org>2015-02-08 08:18:23 -0500
commit681b0e3876ba6ed10efbc139c0d4346446500e07 (patch)
tree0f7092756afa2b1eef500728e592066bcf7c1097 /rules/60-cdrom_id.rules
parentc7badd37d3ac5b06b1fb170b7dfc8ed7c00ce64b (diff)
rules: clean up stale CD drive mounts after ejection
Ejecting a CD with the hardware drive button only causes a change uevent, but the device node stays around (just without a medium). Pick up these uevents and mark the device as SYSTEMD_READY=0 on ejection, so that systemd stops the device unit and consequently all mount units on it. On media insertion, mark the device as SYSTEMD_READY=1 again. https://bugs.freedesktop.org/show_bug.cgi?id=72206 https://bugzilla.opensuse.org/show_bug.cgi?id=909418 https://bugs.archlinux.org/task/42071 https://bugs.launchpad.net/bugs/1168742 Signed-off-by: Anthony G. Basile <blueness@gentoo.org>
Diffstat (limited to 'rules/60-cdrom_id.rules')
-rw-r--r--rules/60-cdrom_id.rules5
1 files changed, 5 insertions, 0 deletions
diff --git a/rules/60-cdrom_id.rules b/rules/60-cdrom_id.rules
index 6eaf76a72c..5c3b52ebb9 100644
--- a/rules/60-cdrom_id.rules
+++ b/rules/60-cdrom_id.rules
@@ -15,6 +15,11 @@ ENV{DISK_EJECT_REQUEST}=="?*", RUN+="cdrom_id --eject-media $devnode", GOTO="cdr
# enable the receiving of media eject button events
IMPORT{program}="cdrom_id --lock-media $devnode"
+# ejecting a CD does not remove the device node, so mark the systemd device
+# unit as inactive while there is no medium; this automatically cleans up of
+# stale mounts after ejecting
+ENV{DISK_MEDIA_CHANGE}=="?*", ENV{ID_CDROM_MEDIA}!="?*", ENV{SYSTEMD_READY}="0"
+
KERNEL=="sr0", SYMLINK+="cdrom", OPTIONS+="link_priority=-100"
LABEL="cdrom_end"