udev-extraconf: skip mounting partitions already mounted by systemd

For some devices, udev may sometimes trigger twice the 'add' rule during
boot. Calling the mount.sh script twice will eventually fail for
already mounted partitions, but in that case, the script tries to remove
the created mountpoint, when it shouldn't.
This has been observed on USB sticks connected to a USB hub and may
result in devices not being mounted if plugged-in before booting.

This patch checks for already mounted partitions earlier (before creating
the mount point) and returns with no actions.

(From OE-Core rev: 4cf076879ac038ebf76679a19249ea6363e63e0f)

Signed-off-by: Hector Palacios <hector.palacios@digi.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Hector Palacios
2019-09-18 10:26:55 +02:00
committed by Richard Purdie
parent 9ad35b8707
commit eba5dcddfa

View File

@@ -38,6 +38,12 @@ done
automount_systemd() {
name="`basename "$DEVNAME"`"
# Skip already mounted partitions
if [ -f /run/systemd/transient/run-media-$name.mount ]; then
logger "mount.sh/automount" "/run/media/$name already mounted"
return
fi
# Skip the partition which are already in /etc/fstab
grep "^[[:space:]]*$DEVNAME" /etc/fstab && return
for n in LABEL PARTLABEL UUID PARTUUID; do