Re: [libvirt] [PATCH v2 2/9] virstoragefile: Always use virStorageSourceGetBackingStore to get backing store
On 21.01.2015 16:29, Matthias Gatto wrote: Uniformize backing store usage by calling virStorageSourceGetBackingStore instead of setting backing store manually. Signed-off-by: Matthias Gatto matthias.ga...@outscale.com --- src/conf/domain_conf.c| 7 --- src/conf/storage_conf.c | 18 ++ src/qemu/qemu_cgroup.c| 4 ++-- src/qemu/qemu_domain.c| 2 +- src/qemu/qemu_driver.c| 12 ++-- src/security/security_dac.c | 2 +- src/security/security_selinux.c | 4 ++-- src/security/virt-aa-helper.c | 2 +- src/storage/storage_backend.c | 30 -- src/storage/storage_backend_fs.c | 31 +-- src/storage/storage_backend_gluster.c | 8 +--- src/storage/storage_backend_logical.c | 6 +++--- src/util/virstoragefile.c | 20 ++-- tests/virstoragetest.c| 14 +++--- 14 files changed, 85 insertions(+), 75 deletions(-) diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index 8792f5e..0668a5b 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -16704,7 +16704,7 @@ virDomainDiskBackingStoreFormat(virBufferPtr buf, /* We currently don't output seclabels for backing chain element */ if (virDomainDiskSourceFormatInternal(buf, backingStore, 0, 0, true) 0 || virDomainDiskBackingStoreFormat(buf, -backingStore-backingStore, + virStorageSourceGetBackingStore(backingStore, 0), backingStore-backingStoreRaw, idx + 1) 0) return -1; @@ -16826,7 +16826,8 @@ virDomainDiskDefFormat(virBufferPtr buf, /* Don't format backingStore to inactive XMLs until the code for * persistent storage of backing chains is ready. */ if (!(flags VIR_DOMAIN_DEF_FORMAT_INACTIVE) -virDomainDiskBackingStoreFormat(buf, def-src-backingStore, +virDomainDiskBackingStoreFormat(buf, + virStorageSourceGetBackingStore(def-src, 0), def-src-backingStoreRaw, 1) 0) return -1; @@ -20868,7 +20869,7 @@ virDomainDiskDefForeachPath(virDomainDiskDefPtr disk, } } -for (tmp = disk-src; tmp; tmp = tmp-backingStore) { +for (tmp = disk-src; tmp; tmp = virStorageSourceGetBackingStore(tmp, 0)) { int actualType = virStorageSourceGetActualType(tmp); /* execute the callback only for local storage */ if (actualType != VIR_STORAGE_TYPE_NETWORK diff --git a/src/conf/storage_conf.c b/src/conf/storage_conf.c index e9aaa8a..f4f7e24 100644 --- a/src/conf/storage_conf.c +++ b/src/conf/storage_conf.c @@ -1339,20 +1339,22 @@ virStorageVolDefParseXML(virStoragePoolDefPtr pool, } if ((backingStore = virXPathString(string(./backingStore/path), ctxt))) { +virStorageSourcePtr backingStorePtr; if (VIR_ALLOC(ret-target.backingStore) 0) goto error; -ret-target.backingStore-path = backingStore; +backingStorePtr = virStorageSourceGetBackingStore(ret-target, 0); +backingStorePtr-path = backingStore; backingStore = NULL; if (options-formatFromString) { char *format = virXPathString(string(./backingStore/format/@type), ctxt); if (format == NULL) -ret-target.backingStore-format = options-defaultFormat; +backingStorePtr-format = options-defaultFormat; else -ret-target.backingStore-format = (options-formatFromString)(format); +backingStorePtr-format = (options-formatFromString)(format); -if (ret-target.backingStore-format 0) { +if (backingStorePtr-format 0) { virReportError(VIR_ERR_CONFIG_UNSUPPORTED, _(unknown volume format type %s), format); VIR_FREE(format); @@ -1361,9 +1363,9 @@ virStorageVolDefParseXML(virStoragePoolDefPtr pool, VIR_FREE(format); } -if (VIR_ALLOC(ret-target.backingStore-perms) 0) +if (VIR_ALLOC(backingStorePtr-perms) 0) goto error; -if (virStorageDefParsePerms(ctxt, ret-target.backingStore-perms, +if (virStorageDefParsePerms(ctxt, backingStorePtr-perms, ./backingStore/permissions, DEFAULT_VOL_PERM_MODE) 0) goto error; @@ -1641,9 +1643,9 @@ virStorageVolDefFormat(virStoragePoolDefPtr pool, def-target, target) 0) goto cleanup; -if (def-target.backingStore
[libvirt] [PATCH v2 2/9] virstoragefile: Always use virStorageSourceGetBackingStore to get backing store
Uniformize backing store usage by calling virStorageSourceGetBackingStore instead of setting backing store manually. Signed-off-by: Matthias Gatto matthias.ga...@outscale.com --- src/conf/domain_conf.c| 7 --- src/conf/storage_conf.c | 18 ++ src/qemu/qemu_cgroup.c| 4 ++-- src/qemu/qemu_domain.c| 2 +- src/qemu/qemu_driver.c| 12 ++-- src/security/security_dac.c | 2 +- src/security/security_selinux.c | 4 ++-- src/security/virt-aa-helper.c | 2 +- src/storage/storage_backend.c | 30 -- src/storage/storage_backend_fs.c | 31 +-- src/storage/storage_backend_gluster.c | 8 +--- src/storage/storage_backend_logical.c | 6 +++--- src/util/virstoragefile.c | 20 ++-- tests/virstoragetest.c| 14 +++--- 14 files changed, 85 insertions(+), 75 deletions(-) diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index 8792f5e..0668a5b 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -16704,7 +16704,7 @@ virDomainDiskBackingStoreFormat(virBufferPtr buf, /* We currently don't output seclabels for backing chain element */ if (virDomainDiskSourceFormatInternal(buf, backingStore, 0, 0, true) 0 || virDomainDiskBackingStoreFormat(buf, -backingStore-backingStore, + virStorageSourceGetBackingStore(backingStore, 0), backingStore-backingStoreRaw, idx + 1) 0) return -1; @@ -16826,7 +16826,8 @@ virDomainDiskDefFormat(virBufferPtr buf, /* Don't format backingStore to inactive XMLs until the code for * persistent storage of backing chains is ready. */ if (!(flags VIR_DOMAIN_DEF_FORMAT_INACTIVE) -virDomainDiskBackingStoreFormat(buf, def-src-backingStore, +virDomainDiskBackingStoreFormat(buf, + virStorageSourceGetBackingStore(def-src, 0), def-src-backingStoreRaw, 1) 0) return -1; @@ -20868,7 +20869,7 @@ virDomainDiskDefForeachPath(virDomainDiskDefPtr disk, } } -for (tmp = disk-src; tmp; tmp = tmp-backingStore) { +for (tmp = disk-src; tmp; tmp = virStorageSourceGetBackingStore(tmp, 0)) { int actualType = virStorageSourceGetActualType(tmp); /* execute the callback only for local storage */ if (actualType != VIR_STORAGE_TYPE_NETWORK diff --git a/src/conf/storage_conf.c b/src/conf/storage_conf.c index e9aaa8a..f4f7e24 100644 --- a/src/conf/storage_conf.c +++ b/src/conf/storage_conf.c @@ -1339,20 +1339,22 @@ virStorageVolDefParseXML(virStoragePoolDefPtr pool, } if ((backingStore = virXPathString(string(./backingStore/path), ctxt))) { +virStorageSourcePtr backingStorePtr; if (VIR_ALLOC(ret-target.backingStore) 0) goto error; -ret-target.backingStore-path = backingStore; +backingStorePtr = virStorageSourceGetBackingStore(ret-target, 0); +backingStorePtr-path = backingStore; backingStore = NULL; if (options-formatFromString) { char *format = virXPathString(string(./backingStore/format/@type), ctxt); if (format == NULL) -ret-target.backingStore-format = options-defaultFormat; +backingStorePtr-format = options-defaultFormat; else -ret-target.backingStore-format = (options-formatFromString)(format); +backingStorePtr-format = (options-formatFromString)(format); -if (ret-target.backingStore-format 0) { +if (backingStorePtr-format 0) { virReportError(VIR_ERR_CONFIG_UNSUPPORTED, _(unknown volume format type %s), format); VIR_FREE(format); @@ -1361,9 +1363,9 @@ virStorageVolDefParseXML(virStoragePoolDefPtr pool, VIR_FREE(format); } -if (VIR_ALLOC(ret-target.backingStore-perms) 0) +if (VIR_ALLOC(backingStorePtr-perms) 0) goto error; -if (virStorageDefParsePerms(ctxt, ret-target.backingStore-perms, +if (virStorageDefParsePerms(ctxt, backingStorePtr-perms, ./backingStore/permissions, DEFAULT_VOL_PERM_MODE) 0) goto error; @@ -1641,9 +1643,9 @@ virStorageVolDefFormat(virStoragePoolDefPtr pool, def-target, target) 0) goto cleanup; -if (def-target.backingStore +if (virStorageSourceGetBackingStore((def-target), 0) virStorageVolTargetDefFormat(options, buf, -