From: Osier Yang Date: Thu, 4 Apr 2013 19:38:01 +0000 (+0800) Subject: qemu: Support shareable volume type disk X-Git-Tag: v1.0.5-rc1~203 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=464d4e559c68a795a6439e3f558a9182ec9b97b4;p=thirdparty%2Flibvirt.git qemu: Support shareable volume type disk Since the source is already translated before. This just adds the checking. Move !disk->shared and !disk->src to improve the performance a bit. --- diff --git a/src/qemu/qemu_conf.c b/src/qemu/qemu_conf.c index 3b881b1f7f..54d5ad64b0 100644 --- a/src/qemu/qemu_conf.c +++ b/src/qemu/qemu_conf.c @@ -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);