summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLukas Funke <lukas.funke@weidmueller.com>2023-11-08 10:40:59 +0100
committerRichard Purdie <richard.purdie@linuxfoundation.org>2023-11-10 17:44:15 +0000
commit695e0a41e3c1cb47484605934a57e7df591bd19f (patch)
treebb324a9c68199c2d4df6436b1c4eceff5e0eaef1
parente17b76644b26ef832b632a03f537060f88344bd8 (diff)
downloadopenembedded-core-contrib-695e0a41e3c1cb47484605934a57e7df591bd19f.tar.gz
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. Signed-off-by: Lukas Funke <lukas.funke@weidmueller.com> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
-rw-r--r--meta/recipes-core/udev/udev-extraconf/mount.sh15
1 files changed, 15 insertions, 0 deletions
diff --git a/meta/recipes-core/udev/udev-extraconf/mount.sh b/meta/recipes-core/udev/udev-extraconf/mount.sh
index b7e86dbc0e..0cd51fcde8 100644
--- a/meta/recipes-core/udev/udev-extraconf/mount.sh
+++ b/meta/recipes-core/udev/udev-extraconf/mount.sh
@@ -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"