46 lines
1.3 KiB
Diff
46 lines
1.3 KiB
Diff
From 870311638f1b28cb653dcc7a478af4d1155f96a2 Mon Sep 17 00:00:00 2001
|
|
From: Jeffy Chen <jeffy.chen@rock-chips.com>
|
|
Date: Tue, 27 Aug 2024 16:49:59 +0800
|
|
Subject: [PATCH 09/10] Use flock instead of lockfile
|
|
|
|
The lockfile is slow for multiple partitions somehow.
|
|
|
|
Signed-off-by: Jeffy Chen <jeffy.chen@rock-chips.com>
|
|
---
|
|
usbmount | 12 +++++++++---
|
|
1 file changed, 9 insertions(+), 3 deletions(-)
|
|
|
|
diff --git a/usbmount b/usbmount
|
|
index 870e9d6..b464362 100755
|
|
--- a/usbmount
|
|
+++ b/usbmount
|
|
@@ -82,9 +82,10 @@ if [ "$1" = add ]; then
|
|
|
|
# Acquire lock.
|
|
log debug "trying to acquire lock /var/run/usbmount/.mount.lock"
|
|
- lockfile-create --retry 3 /var/run/usbmount/.mount || \
|
|
- { log err "cannot acquire lock /var/run/usbmount/.mount.lock"; exit 1; }
|
|
- trap '( lockfile-remove /var/run/usbmount/.mount )' 0
|
|
+ mkdir -p /var/run/usbmount/
|
|
+ touch /var/run/usbmount/.mount.lock
|
|
+ exec 3</var/run/usbmount/.mount.lock
|
|
+ flock -x 3
|
|
log debug "acquired lock /var/run/usbmount/.mount.lock"
|
|
|
|
if ! echo $ID_FS_USAGE | egrep -q "(filesystem|disklabel)"; then
|
|
@@ -177,6 +178,11 @@ if [ "$1" = add ]; then
|
|
fi
|
|
fi
|
|
fi
|
|
+
|
|
+ # Release lock.
|
|
+ log debug "release lock /var/run/usbmount/.mount.lock"
|
|
+ flock -u 3
|
|
+
|
|
elif [ "$1" = remove ]; then
|
|
|
|
# A block or partition device has been removed.
|
|
--
|
|
2.20.1
|
|
|