[systemd-devel] [PATCH] systemd-udevd.service: restore mount propagation
Lennart Poettering
lennart at poettering.net
Wed Jan 28 05:25:50 PST 2015
On Wed, 28.01.15 14:09, Martin Pitt (martin.pitt at ubuntu.com) wrote:
> From 0cc891bcd8d3fa9967dd733292caf86a43dd3503 Mon Sep 17 00:00:00 2001
> From: Martin Pitt <martin.pitt at 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
More information about the systemd-devel
mailing list