Part of a series of cleanups to use new accessor methods.
Several places in domain_conf.c still open-code raw field access,
but that code will be touched later with the diskDef struct split
so I'm avoiding churn here.
* src/conf/domain_audit.c (virDomainAuditStart): Use accessors.
* src/conf/domain_conf.c (virDomainDiskIndexByName)
(virDomainDiskPathByName, virDomainDiskDefForeachPath)
(virDomainDiskSourceIsBlockType): Likewise.
* src/conf/snapshot_conf.c (virDomainSnapshotAlignDisks):
Likewise.
Signed-off-by: Eric Blake <eblake(a)redhat.com>
---
src/conf/domain_audit.c | 7 ++++---
src/conf/domain_conf.c | 20 +++++++++++---------
src/conf/snapshot_conf.c | 2 +-
3 files changed, 16 insertions(+), 13 deletions(-)
diff --git a/src/conf/domain_audit.c b/src/conf/domain_audit.c
index 69632b0..e8bd460 100644
--- a/src/conf/domain_audit.c
+++ b/src/conf/domain_audit.c
@@ -799,9 +799,10 @@ virDomainAuditStart(virDomainObjPtr vm, const char *reason, bool
success)
size_t i;
for (i = 0; i < vm->def->ndisks; i++) {
- virDomainDiskDefPtr disk = vm->def->disks[i];
- if (disk->src) /* Skips CDROM without media initially inserted */
- virDomainAuditDisk(vm, NULL, disk->src, "start", true);
+ const char *src = virDomainDiskGetSource(vm->def->disks[i]);
+
+ if (src) /* Skips CDROM without media initially inserted */
+ virDomainAuditDisk(vm, NULL, src, "start", true);
}
for (i = 0; i < vm->def->nfss; i++) {
diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index d2724ca..a0e07c7 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -10233,8 +10233,7 @@ virDomainDiskIndexByName(virDomainDefPtr def, const char *name,
if (*name != '/') {
if (STREQ(vdisk->dst, name))
return i;
- } else if (vdisk->src &&
- STREQ(vdisk->src, name)) {
+ } else if (STREQ_NULLABLE(virDomainDiskGetSource(vdisk), name)) {
if (allow_ambiguous)
return i;
if (candidate >= 0)
@@ -10253,7 +10252,7 @@ virDomainDiskPathByName(virDomainDefPtr def, const char *name)
{
int idx = virDomainDiskIndexByName(def, name, true);
- return idx < 0 ? NULL : def->disks[idx]->src;
+ return idx < 0 ? NULL : virDomainDiskGetSource(def->disks[idx]);
}
int virDomainDiskInsert(virDomainDefPtr def,
@@ -18532,14 +18531,16 @@ virDomainDiskDefForeachPath(virDomainDiskDefPtr disk,
int ret = -1;
size_t depth = 0;
virStorageFileMetadata *tmp;
+ const char *path = virDomainDiskGetSource(disk);
+ int type = virDomainDiskGetType(disk);
- if (!disk->src || disk->type == VIR_DOMAIN_DISK_TYPE_NETWORK ||
- (disk->type == VIR_DOMAIN_DISK_TYPE_VOLUME &&
+ if (!path || type == VIR_DOMAIN_DISK_TYPE_NETWORK ||
+ (type == VIR_DOMAIN_DISK_TYPE_VOLUME &&
disk->srcpool &&
disk->srcpool->mode == VIR_DOMAIN_DISK_SOURCE_POOL_MODE_DIRECT))
return 0;
- if (iter(disk, disk->src, 0, opaque) < 0)
+ if (iter(disk, path, 0, opaque) < 0)
goto cleanup;
tmp = disk->backingChain;
@@ -19409,16 +19410,17 @@ virDomainDiskSourceIsBlockType(virDomainDiskDefPtr def)
/* No reason to think the disk source is block type if
* the source is empty
*/
- if (!def->src)
+ if (!virDomainDiskGetSource(def))
return false;
- if (def->type == VIR_DOMAIN_DISK_TYPE_BLOCK)
+ if (virDomainDiskGetType(def) == VIR_DOMAIN_DISK_TYPE_BLOCK)
return true;
/* For volume types, check the srcpool.
* If it's a block type source pool, then it's possible
*/
- if (def->type == VIR_DOMAIN_DISK_TYPE_VOLUME && def->srcpool
&&
+ if (virDomainDiskGetType(def) == VIR_DOMAIN_DISK_TYPE_VOLUME &&
+ def->srcpool &&
def->srcpool->voltype == VIR_STORAGE_VOL_BLOCK) {
/* We don't think the volume accessed by remote URI is
* block type source, since we can't/shouldn't manage it
diff --git a/src/conf/snapshot_conf.c b/src/conf/snapshot_conf.c
index 6fa14ed..0509743 100644
--- a/src/conf/snapshot_conf.c
+++ b/src/conf/snapshot_conf.c
@@ -558,7 +558,7 @@ virDomainSnapshotAlignDisks(virDomainSnapshotDefPtr def,
if (disk->snapshot == VIR_DOMAIN_SNAPSHOT_LOCATION_EXTERNAL &&
!disk->file) {
- const char *original = def->dom->disks[i]->src;
+ const char *original = virDomainDiskGetSource(def->dom->disks[i]);
const char *tmp;
struct stat sb;
--
1.8.5.3