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@xxxxxxxxxx>
diff -r 3c4c3d48a835 tools/hotplug/Linux/xen-hotplug-cleanup --- a/tools/hotplug/Linux/xen-hotplug-cleanup Thu Aug 26 11:16:56 2010 +0100 +++ b/tools/hotplug/Linux/xen-hotplug-cleanup Fri Dec 03 22:47:04 2010 +0800 @@ -21,10 +21,12 @@ # 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
|