]> xenbits.xensource.com Git - people/liuw/libxenctrl-split/libvirt.git/commitdiff
qemu: Support shareable volume type disk
authorOsier Yang <jyang@redhat.com>
Thu, 4 Apr 2013 19:38:01 +0000 (03:38 +0800)
committerOsier Yang <jyang@redhat.com>
Mon, 8 Apr 2013 11:08:47 +0000 (19:08 +0800)
Since the source is already translated before. This just adds the
checking. Move !disk->shared and !disk->src to improve the performance
a bit.

src/qemu/qemu_conf.c

index 3b881b1f7f4a878cd3943193b0fd024c442baf9d..54d5ad64b03a8ec6f0f2d1af74aa9983ce5e9b9d 100644 (file)
@@ -1095,8 +1095,12 @@ qemuAddSharedDisk(virQEMUDriverPtr driver,
      * for the shared disk is "sgio" setting, which is only
      * valid for block disk.
      */
-    if (disk->type != VIR_DOMAIN_DISK_TYPE_BLOCK ||
-        !disk->shared || !disk->src)
+    if (!disk->shared ||
+        !disk->src ||
+        (disk->type != VIR_DOMAIN_DISK_TYPE_BLOCK &&
+         !(disk->type == VIR_DOMAIN_DISK_TYPE_VOLUME &&
+           disk->srcpool &&
+           disk->srcpool->voltype == VIR_STORAGE_VOL_BLOCK)))
         return 0;
 
     qemuDriverLock(driver);
@@ -1171,8 +1175,12 @@ qemuRemoveSharedDisk(virQEMUDriverPtr driver,
     int ret = -1;
     int idx;
 
-    if (disk->type != VIR_DOMAIN_DISK_TYPE_BLOCK ||
-        !disk->shared || !disk->src)
+    if (!disk->shared ||
+        !disk->src ||
+        (disk->type != VIR_DOMAIN_DISK_TYPE_BLOCK &&
+         !(disk->type == VIR_DOMAIN_DISK_TYPE_VOLUME &&
+           disk->srcpool &&
+           disk->srcpool->voltype == VIR_STORAGE_VOL_BLOCK)))
         return 0;
 
     qemuDriverLock(driver);