With blockdev support we will need to introspect whether any of the
backing chain members requires PR rather just one of them. Add a helper
and reuse it in virDomainDefHasManagedPR.
Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
size_t i;
for (i = 0; i < def->ndisks; i++) {
- if (virStoragePRDefIsManaged(def->disks[i]->src->pr))
+ if (virStorageSourceChainHasManagedPR(def->disks[i]->src))
return true;
}
virStoragePRDefIsManaged;
virStoragePRDefParseXML;
virStorageSourceBackingStoreClear;
+virStorageSourceChainHasManagedPR;
virStorageSourceClear;
virStorageSourceCopy;
virStorageSourceFindByNodeName;
}
+bool
+virStorageSourceChainHasManagedPR(virStorageSourcePtr src)
+{
+ virStorageSourcePtr n;
+
+ for (n = src; virStorageSourceIsBacking(n); n = n->backingStore) {
+ if (virStoragePRDefIsManaged(src->pr))
+ return true;
+ }
+
+ return false;
+}
+
+
virSecurityDeviceLabelDefPtr
virStorageSourceGetSecurityLabelDef(virStorageSourcePtr src,
const char *model)
virStoragePRDefPtr b);
bool virStoragePRDefIsManaged(virStoragePRDefPtr prd);
+bool
+virStorageSourceChainHasManagedPR(virStorageSourcePtr src);
+
virSecurityDeviceLabelDefPtr
virStorageSourceGetSecurityLabelDef(virStorageSourcePtr src,
const char *model);