From 140d188b3665f914396834168feeff6ffcb64d76 Mon Sep 17 00:00:00 2001 From: Yasir-Khan Date: Thu, 14 Aug 2014 19:56:37 +0500 Subject: udev-extraconf: Unmount SD card after ejection Adds udev rule to unmount SD card partitions in case of improper ejection from card reader. When SD card is ejected from card reader without being unmounted first, kernel does not generate a REMOVE event, instead it generates a CHANGE event(only if polling is enabled /sys/module/block/parameters/events_dfl_poll_msecs) and we don't have any udev rule in automount.rules to handle this event,so partitions never get unmounted. Unmounting of partitions can be done if udev rules handle this CHANGE event. Signed-off-by: Abbas Raza Signed-off-by: Yasir-Khan Signed-off-by: Richard Purdie --- meta/recipes-core/udev/udev-extraconf/automount.rules | 2 +- meta/recipes-core/udev/udev-extraconf/mount.sh | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) (limited to 'meta/recipes-core/udev') diff --git a/meta/recipes-core/udev/udev-extraconf/automount.rules b/meta/recipes-core/udev/udev-extraconf/automount.rules index 7e844c31bd..62578ea631 100644 --- a/meta/recipes-core/udev/udev-extraconf/automount.rules +++ b/meta/recipes-core/udev/udev-extraconf/automount.rules @@ -16,4 +16,4 @@ # Media automounting SUBSYSTEM=="block", ACTION=="add" RUN+="/etc/udev/scripts/mount.sh" SUBSYSTEM=="block", ACTION=="remove" RUN+="/etc/udev/scripts/mount.sh" - +SUBSYSTEM=="block", ACTION=="change", ENV{DISK_MEDIA_CHANGE}=="1" RUN+="/etc/udev/scripts/mount.sh" diff --git a/meta/recipes-core/udev/udev-extraconf/mount.sh b/meta/recipes-core/udev/udev-extraconf/mount.sh index 7df1b6e3e7..3eea910854 100644 --- a/meta/recipes-core/udev/udev-extraconf/mount.sh +++ b/meta/recipes-core/udev/udev-extraconf/mount.sh @@ -78,8 +78,7 @@ if [ "$ACTION" = "add" ] && [ -n "$DEVNAME" ] && [ -n "$ID_FS_TYPE" -o "$media_t fi - -if [ "$ACTION" = "remove" ] && [ -x "$UMOUNT" ] && [ -n "$DEVNAME" ]; then +if [ "$ACTION" = "remove" ] || [ "$ACTION" = "change" ] && [ -x "$UMOUNT" ] && [ -n "$DEVNAME" ]; then for mnt in `cat /proc/mounts | grep "$DEVNAME" | cut -f 2 -d " " ` do $UMOUNT $mnt -- cgit 1.2.3-korg