tools/hotplug: locking.sh script: fix lock directory remains on error bug
authorIan Jackson <Ian.Jackson@eu.citrix.com>
Tue, 6 Jul 2010 12:10:14 +0000 (13:10 +0100)
committerIan Jackson <Ian.Jackson@eu.citrix.com>
Tue, 6 Jul 2010 12:10:14 +0000 (13:10 +0100)
_release_lock should be used instead of release_lock.
sigerr is introduced so that it can be redefined by
xen-hotplug-common.sh to a version which writes error status to xenstore.

Signed-off-by: Kouya Shimura <kouya@jp.fujitsu.com>
tools/hotplug/Linux/locking.sh

index 6ff58e7e6caa8f51557ca1487125f9e47a2e59f8..7dbd6bef810581e9cbcb0e1b7e9d6fc3f81d10dc 100644 (file)
@@ -39,6 +39,12 @@ release_lock()
 }
 
 
+# This function will be redefined in xen-hotplug-common.sh.
+sigerr() {
+  exit 1
+}
+
+
 _claim_lock()
 {
   local lockdir="$1"
@@ -47,7 +53,7 @@ _claim_lock()
 
   while [ $retries -lt $LOCK_RETRIES ]
   do
-    mkdir "$lockdir" 2>/dev/null && trap "release_lock $1; sigerr" ERR &&
+    mkdir "$lockdir" 2>/dev/null && trap "_release_lock $lockdir; sigerr" ERR &&
       _update_lock_info "$lockdir" && return
 
     local new_owner=$(_lock_owner "$lockdir")