From mboxrd@z Thu Jan 1 00:00:00 1970 From: Arne Fitzenreiter To: development@lists.ipfire.org Subject: [PATCH] extrahd: use udev rule to mount extrahd partitions Date: Sun, 17 Sep 2023 13:58:54 +0200 Message-ID: <20230917115910.4074-1-arne_f@ipfire.org> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============5898243313826552424==" List-Id: --===============5898243313826552424== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable the previous patches for https://bugzilla.ipfire.org/show_bug.cgi?id=3D12863 introduce a new bug that slow devices are not mounted at boot. So now udev calls the extrahd script with the uuid. Signed-off-by: Arne Fitzenreiter --- config/extrahd/extrahd.pl | 36 ++++++++++++++++++++++++++++-------- config/rootfiles/common/udev | 1 + config/udev/61-extrahd.rules | 1 + lfs/udev | 4 ++++ 4 files changed, 34 insertions(+), 8 deletions(-) create mode 100644 config/udev/61-extrahd.rules diff --git a/config/extrahd/extrahd.pl b/config/extrahd/extrahd.pl index 145a2a43a..cc85228d5 100644 --- a/config/extrahd/extrahd.pl +++ b/config/extrahd/extrahd.pl @@ -35,10 +35,20 @@ extrahd_mount() { local failed=3D0 =20 while IFS=3D';' read -r device filesystem mountpoint rest; do - # Filter by mountpoint if set - if [ -n "${_mountpoint}" ] && [ "${mountpoint}" !=3D "${_mountpoint}" ]; t= hen - continue - fi + # Filter by UUID or mountpoint + case "${_mountpoint}" in + UUID=3D*) + if [ "${device}" !=3D "${_mountpoint}" ]; then + continue + fi + ;; + + /*) + if [ -n "${_mountpoint}" ] && [ "${mountpoint}" !=3D "${_mountpoint}" ];= then + continue + fi + ;; + esac =20 # Check that the mountpoint starts with a slash if [ "${mountpoint:0:1}" !=3D "/" ]; then @@ -75,10 +85,20 @@ extrahd_umount() { local failed=3D0 =20 while IFS=3D';' read -r device filesystem mountpoint rest; do - # Filter by mountpoint if set - if [ -n "${_mountpoint}" ] && [ "${mountpoint}" !=3D "${_mountpoint}" ]; t= hen - continue - fi + # Filter by UUID or mountpoint + case "${_mountpoint}" in + UUID=3D*) + if [ "${device}" !=3D "${_mountpoint}" ]; then + continue + fi + ;; + + /*) + if [ -n "${_mountpoint}" ] && [ "${mountpoint}" !=3D "${_mountpoint}" ];= then + continue + fi + ;; + esac =20 # Do not try to umount if nothing is mounted if ! mountpoint "${mountpoint}" &>/dev/null; then diff --git a/config/rootfiles/common/udev b/config/rootfiles/common/udev index e5c9bd01f..876ae0c5a 100644 --- a/config/rootfiles/common/udev +++ b/config/rootfiles/common/udev @@ -70,6 +70,7 @@ lib/udev/rules.d/60-persistent-storage.rules lib/udev/rules.d/60-persistent-v4l.rules lib/udev/rules.d/60-sensor.rules lib/udev/rules.d/60-serial.rules +lib/udev/rules.d/61-extrahd.rules lib/udev/rules.d/64-btrfs.rules lib/udev/rules.d/70-camera.rules lib/udev/rules.d/70-joystick.rules diff --git a/config/udev/61-extrahd.rules b/config/udev/61-extrahd.rules new file mode 100644 index 000000000..114f2d665 --- /dev/null +++ b/config/udev/61-extrahd.rules @@ -0,0 +1 @@ +ACTION=3D=3D"add", SUBSYSTEM=3D=3D"block", RUN+=3D"/var/ipfire/extrahd/bin/e= xtrahd.pl udev-event" diff --git a/lfs/udev b/lfs/udev index eb01ae848..703d98b86 100644 --- a/lfs/udev +++ b/lfs/udev @@ -122,6 +122,10 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) install -v -m 644 $(DIR_SRC)/config/udev/60-net.rules \ /lib/udev/rules.d =20 + # Install ExtraHD rules + install -v -m 644 $(DIR_SRC)/config/udev/61-extrahd.rules \ + /lib/udev/rules.d + # Install AQM rules install -v -m 644 $(DIR_SRC)/config/udev/99-aqm.rules \ /lib/udev/rules.d --=20 2.42.0 --===============5898243313826552424==--