From: Wei Liu Date: Wed, 13 Apr 2016 17:02:36 +0000 (+0100) Subject: hotplug/Linux: fix same_vm check in block script X-Git-Tag: archive/raspbian/4.8.0-1+rpi1~1^2~1278 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=f3a7ca02400d1c416e97451b4aebfaf608fc8192;p=xen.git hotplug/Linux: fix same_vm check in block script The original same_vm check has two bugs. When stubdom is in use because it relies on numeric domid to check if two domains are in fact the same one. Another one is that the check would fail when two stubdoms are checked against each other. The first bug is fixed by using uuid to identify a domain. The second bug is fixed by comparing the domains two stubdoms serve. Signed-off-by: Wei Liu Acked-by: Ian Jackson Release-acked-by: Wei Liu --- diff --git a/tools/hotplug/Linux/block-common.sh b/tools/hotplug/Linux/block-common.sh index 35110b47b4..f86a88c4eb 100644 --- a/tools/hotplug/Linux/block-common.sh +++ b/tools/hotplug/Linux/block-common.sh @@ -112,14 +112,17 @@ same_vm() "$FRONTEND_UUID") local target=$(xenstore_read_default "/local/domain/$FRONTEND_ID/target" \ "-1") + local targetvm=$(xenstore_read_default "/local/domain/$target/vm" "-1") local otarget=$(xenstore_read_default "/local/domain/$otherdom/target" \ "-1") local otvm=$(xenstore_read_default "/local/domain/$otarget/vm" \ "-1") otvm=${otvm%-1} othervm=${othervm%-1} + targetvm=${targetvm%-1} local frontend_uuid=${FRONTEND_UUID%-1} - [ "$frontend_uuid" = "$othervm" -o "$target" = "$otherdom" -o "$frontend_uuid" = "$otvm" ] + [ "$frontend_uuid" = "$othervm" -o "$targetvm" = "$othervm" -o \ + "$frontend_uuid" = "$otvm" -o "$targetvm" = "$otvm" ] }