Fix /vm/uuid xenstore leak on tapdisk2 device cleanup
authorChunyan Liu <cyliu@novell.com>
Mon, 13 Dec 2010 17:39:27 +0000 (17:39 +0000)
committerChunyan Liu <cyliu@novell.com>
Mon, 13 Dec 2010 17:39:27 +0000 (17:39 +0000)
While doing block-detach blktap2 disk, tap2 device info is not cleared from
xenstore /vm/uuid/xxx. The reason is in xen-hotplug-cleanup script: when $vm_dev
does not exist, $(xenstore-read "$vm_dev" 2>/dev/null) is also "", won't enter
the block. So, change to use cmd return value to check existence.

Signed-off-by Chunyan Liu <cyliu@novell.com>
Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
committer: Stefano Stabellini <stefano.stabellini@eu.citrix.com>

tools/hotplug/Linux/xen-hotplug-cleanup

index 2b5a2b45908678d6dc06047189ccb57af0382ae9..237a2d17007ebac69e47fa95f877b41943636615 100644 (file)
@@ -21,10 +21,12 @@ if [ "$vm" != "" ]; then
 
   # if the vm path does not exist and the device class is 'vbd' then we may have
   # a tap2 device
-  if [ "$(xenstore-read "$vm_dev" 2>/dev/null)" != "" ] \
-       && [ "${path_array[1]}" = "vbd" ]; then
-    vm_dev="$vm/device/tap2/${path_array[3]}"
-  fi
+  $(xenstore-read "$vm_dev" 2>/dev/null) || \
+  {
+     if [ "${path_array[1]}" = "vbd" ]; then
+        vm_dev="$vm/device/tap2/${path_array[3]}"
+     fi
+  }
 else
   vm_dev=
 fi