On Wed, 28.01.15 14:09, Martin Pitt (martin.p...@ubuntu.com) wrote: > From 0cc891bcd8d3fa9967dd733292caf86a43dd3503 Mon Sep 17 00:00:00 2001 > From: Martin Pitt <martin.p...@ubuntu.com> > Date: Wed, 28 Jan 2015 13:57:47 +0100 > Subject: [PATCH 2/2] 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 > --- > rules/60-cdrom_id.rules | 6 ++++++ > 1 file changed, 6 insertions(+) > > diff --git a/rules/60-cdrom_id.rules b/rules/60-cdrom_id.rules > index 6eaf76a..7bfb12e 100644 > --- a/rules/60-cdrom_id.rules > +++ b/rules/60-cdrom_id.rules > @@ -15,6 +15,12 @@ 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" > +ENV{DISK_MEDIA_CHANGE}=="?*", ENV{ID_CDROM_MEDIA}=="?*", > ENV{SYSTEMD_READY}="1"
Hmm, we probably should do the same for USB memory card drives. No idea how media sensing works there. Any chance you can look into that too? Lennart -- Lennart Poettering, Red Hat _______________________________________________ systemd-devel mailing list systemd-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/systemd-devel