mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-03-07 17:28:15 +00:00
util: storage: Add helper for determining whether a backing chain requires PR
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>
This commit is contained in:
parent
3875459235
commit
8ac8301366
@ -29946,7 +29946,7 @@ virDomainDefHasManagedPR(const virDomainDef *def)
|
|||||||
size_t i;
|
size_t i;
|
||||||
|
|
||||||
for (i = 0; i < def->ndisks; i++) {
|
for (i = 0; i < def->ndisks; i++) {
|
||||||
if (virStoragePRDefIsManaged(def->disks[i]->src->pr))
|
if (virStorageSourceChainHasManagedPR(def->disks[i]->src))
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2815,6 +2815,7 @@ virStoragePRDefIsEqual;
|
|||||||
virStoragePRDefIsManaged;
|
virStoragePRDefIsManaged;
|
||||||
virStoragePRDefParseXML;
|
virStoragePRDefParseXML;
|
||||||
virStorageSourceBackingStoreClear;
|
virStorageSourceBackingStoreClear;
|
||||||
|
virStorageSourceChainHasManagedPR;
|
||||||
virStorageSourceClear;
|
virStorageSourceClear;
|
||||||
virStorageSourceCopy;
|
virStorageSourceCopy;
|
||||||
virStorageSourceFindByNodeName;
|
virStorageSourceFindByNodeName;
|
||||||
|
@ -2025,6 +2025,20 @@ virStoragePRDefIsManaged(virStoragePRDefPtr prd)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
bool
|
||||||
|
virStorageSourceChainHasManagedPR(virStorageSourcePtr src)
|
||||||
|
{
|
||||||
|
virStorageSourcePtr n;
|
||||||
|
|
||||||
|
for (n = src; virStorageSourceIsBacking(n); n = n->backingStore) {
|
||||||
|
if (virStoragePRDefIsManaged(src->pr))
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
virSecurityDeviceLabelDefPtr
|
virSecurityDeviceLabelDefPtr
|
||||||
virStorageSourceGetSecurityLabelDef(virStorageSourcePtr src,
|
virStorageSourceGetSecurityLabelDef(virStorageSourcePtr src,
|
||||||
const char *model)
|
const char *model)
|
||||||
|
@ -400,6 +400,9 @@ bool virStoragePRDefIsEqual(virStoragePRDefPtr a,
|
|||||||
virStoragePRDefPtr b);
|
virStoragePRDefPtr b);
|
||||||
bool virStoragePRDefIsManaged(virStoragePRDefPtr prd);
|
bool virStoragePRDefIsManaged(virStoragePRDefPtr prd);
|
||||||
|
|
||||||
|
bool
|
||||||
|
virStorageSourceChainHasManagedPR(virStorageSourcePtr src);
|
||||||
|
|
||||||
virSecurityDeviceLabelDefPtr
|
virSecurityDeviceLabelDefPtr
|
||||||
virStorageSourceGetSecurityLabelDef(virStorageSourcePtr src,
|
virStorageSourceGetSecurityLabelDef(virStorageSourcePtr src,
|
||||||
const char *model);
|
const char *model);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user