Package: usbmount
Version: 0.0.14-0.1
Severity: important
Tags: patch
I use a n-in-1 device wich have 4 slots. Basically, linux sees this as four
devices. Usbmount is started four times at the same time. This means that two
of the processes gets a timeout while waiting for the other two to finish.
Usbmount locks as soon as possible, so only one instance is active at a time.
But is that needed? I haven't checked it 100%, but I think there is not need to
lock before usbmount has decided to try to mount something, this is what my
patch does.
-- System Information:
Debian Release: testing/unstable
APT prefers testing
APT policy: (500, 'testing'), (20, 'unstable'), (1, 'experimental')
Architecture: i386 (i686)
Shell: /bin/sh linked to /bin/bash
Kernel: Linux 2.6.15-1-k7
Locale: LANG=da_DK, LC_CTYPE=da_DK (charmap=ISO-8859-1)
Versions of packages usbmount depends on:
ii lockfile-progs 0.1.10 Programs for locking and unlocking
ii udev 0.093-1 /dev/ and hotplug management daemo
usbmount recommends no packages.
-- no debconf information
--- usbmount.orig 2006-07-09 23:15:17.000000000 +0200
+++ usbmount 2006-07-09 23:34:36.000000000 +0200
@@ -35,6 +35,15 @@
return 1
}
+# Acquire lock.
+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
+ log debug "acquired lock /var/run/usbmount/.mount.lock"
+}
# Test if /lib/udev/vol_id is executable.
test -x /lib/udev/vol_id || { log err "cannnot execute /lib/udev/vol_id"; exit
1; }
@@ -56,13 +65,6 @@
if test "$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
- log debug "acquired lock /var/run/usbmount/.mount.lock"
-
# Try to read from the device. Some devices need a few seconds
# initialization time before they can be accessed. Give up after
# 20 seconds. Thanks to Peter Stelmachovic for his help with
@@ -95,6 +97,8 @@
# types to mount.
if in_list "$fstype" "$FILESYSTEMS"; then
+ lock
+
# Search an available mountpoint.
for v in $MOUNTPOINTS; do
if test -d "$v" \