qemuDomainVirStorageSourceFindByNodeName: Extract nodename matching

Extract the matching of the node name of a single virStorage source so
that the logic can be reused in the upcoming patch.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Jiri Denemark <jdenemar@redhat.com>
This commit is contained in:
Peter Krempa 2024-11-26 09:31:57 +01:00
parent 2a9349c8e8
commit 71935d4972

View File

@ -2884,6 +2884,25 @@ qemuDomainObjPrivateXMLParseBlockjobChain(xmlNodePtr node,
} }
/**
* qemuDomainVirStorageSourceMatchNodename:
* @src: storage source to match
* @nodeName to match
*
* Returns true if any of the nodenames of @src matches @nodeName.
*/
static bool
qemuDomainVirStorageSourceMatchNodename(virStorageSource *src,
const char *nodeName)
{
const char *nodestorage = qemuBlockStorageSourceGetStorageNodename(src);
const char *nodeformat = qemuBlockStorageSourceGetFormatNodename(src);
return (nodeformat && STREQ(nodeformat, nodeName)) ||
(nodestorage && STREQ(nodestorage, nodeName));
}
/** /**
* qemuDomainVirStorageSourceFindByNodeName: * qemuDomainVirStorageSourceFindByNodeName:
* @top: backing chain top * @top: backing chain top
@ -2900,11 +2919,7 @@ qemuDomainVirStorageSourceFindByNodeName(virStorageSource *top,
virStorageSource *tmp; virStorageSource *tmp;
for (tmp = top; virStorageSourceIsBacking(tmp); tmp = tmp->backingStore) { for (tmp = top; virStorageSourceIsBacking(tmp); tmp = tmp->backingStore) {
const char *nodestorage = qemuBlockStorageSourceGetStorageNodename(tmp); if (qemuDomainVirStorageSourceMatchNodename(tmp, nodeName))
const char *nodeformat = qemuBlockStorageSourceGetFormatNodename(tmp);
if ((nodeformat && STREQ(nodeformat, nodeName)) ||
(nodestorage && STREQ(nodestorage, nodeName)))
return tmp; return tmp;
} }