udev-extraconf: mount.sh: check if filesystem is supported before mounting

Check if the filesystem is supported by the kernel before trying to
mount it. Systemd-mount will mount the directories asynchronously
resulting in stale directories if the devices filesystem is not
supported.

(From OE-Core rev: 695e0a41e3c1cb47484605934a57e7df591bd19f)

Signed-off-by: Lukas Funke <lukas.funke@weidmueller.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Lukas Funke
2023-11-08 10:40:59 +01:00
committed by Richard Purdie
parent a9befd527e
commit 9b2d4952fe

View File

@@ -36,6 +36,16 @@ do
fi
done
is_filesystem_supported() {
while read -r fs; do
if [ "${fs#nodev}" = "$1" ];
then
return 0
fi
done < "/proc/filesystems"
return 1
}
automount_systemd() {
name="`basename "$DEVNAME"`"
@@ -64,6 +74,11 @@ automount_systemd() {
grep "^[[:space:]]*$tmp" /etc/fstab && return
done
if ! is_filesystem_supported $ID_FS_TYPE; then
logger "mount.sh/automount" "Filesystem '$ID_FS_TYPE' on '${DEVNAME}' is unsupported"
return
fi
[ -d "$MOUNT_BASE/$name" ] || mkdir -p "$MOUNT_BASE/$name"
MOUNT="$MOUNT -o silent"