From: Peter Krempa Date: Mon, 30 Jun 2014 13:48:45 +0000 (+0200) Subject: qemu: Add helper to initialize storage file backend with correct uid/gid X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=63fc72d38a668ea75029722668d4423056af03ac;p=people%2Fliuw%2Flibxenctrl-split%2Flibvirt.git qemu: Add helper to initialize storage file backend with correct uid/gid Add a wrapper that determines the correct uid and gid for a certain storage file and domain. --- diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c index 5ec57653c..4f63c8839 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c @@ -2437,6 +2437,29 @@ qemuDomainGetImageIds(virQEMUDriverConfigPtr cfg, } +int +qemuDomainStorageFileInit(virQEMUDriverPtr driver, + virDomainObjPtr vm, + virStorageSourcePtr src) +{ + virQEMUDriverConfigPtr cfg = virQEMUDriverGetConfig(driver); + uid_t uid; + gid_t gid; + int ret = -1; + + qemuDomainGetImageIds(cfg, vm, src, &uid, &gid); + + if (virStorageFileInitAs(src, uid, gid) < 0) + goto cleanup; + + ret = 0; + + cleanup: + virObjectUnref(cfg); + return ret; +} + + int qemuDomainDetermineDiskChain(virQEMUDriverPtr driver, virDomainObjPtr vm, diff --git a/src/qemu/qemu_domain.h b/src/qemu/qemu_domain.h index 3bda446c0..67972b917 100644 --- a/src/qemu/qemu_domain.h +++ b/src/qemu/qemu_domain.h @@ -353,6 +353,10 @@ int qemuDomainDetermineDiskChain(virQEMUDriverPtr driver, virDomainDiskDefPtr disk, bool force); +int qemuDomainStorageFileInit(virQEMUDriverPtr driver, + virDomainObjPtr vm, + virStorageSourcePtr src); + int qemuDomainCleanupAdd(virDomainObjPtr vm, qemuDomainCleanupCallback cb); void qemuDomainCleanupRemove(virDomainObjPtr vm,