mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-03-20 07:59:00 +00:00
conf: domain: Introduce an internal variant of virDomainDiskDefNew
The <disk> XML element parser is going to be modified so that the virStorageSource bits are pre-parsed. Add virDomainDiskDefNewSource, which uses an existing 'src' pointer. Signed-off-by: Peter Krempa <pkrempa@redhat.com> Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
This commit is contained in:
parent
0202467c4b
commit
dbfb5aa7c0
@ -2230,25 +2230,32 @@ virDomainDefGetVcpusTopology(const virDomainDef *def,
|
||||
}
|
||||
|
||||
|
||||
virDomainDiskDef *
|
||||
virDomainDiskDefNew(virDomainXMLOption *xmlopt)
|
||||
static virDomainDiskDef *
|
||||
virDomainDiskDefNewSource(virDomainXMLOption *xmlopt,
|
||||
virStorageSource **src)
|
||||
{
|
||||
void *privateData = NULL;
|
||||
virDomainDiskDef *ret;
|
||||
|
||||
ret = g_new0(virDomainDiskDef, 1);
|
||||
|
||||
ret->src = virStorageSourceNew();
|
||||
|
||||
if (xmlopt &&
|
||||
xmlopt->privateData.diskNew &&
|
||||
!(ret->privateData = xmlopt->privateData.diskNew()))
|
||||
goto error;
|
||||
!(privateData = xmlopt->privateData.diskNew()))
|
||||
return NULL;
|
||||
|
||||
ret = g_new0(virDomainDiskDef, 1);
|
||||
ret->src = g_steal_pointer(src);
|
||||
ret->privateData = privateData;
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
error:
|
||||
virDomainDiskDefFree(ret);
|
||||
return NULL;
|
||||
|
||||
virDomainDiskDef *
|
||||
virDomainDiskDefNew(virDomainXMLOption *xmlopt)
|
||||
{
|
||||
g_autoptr(virStorageSource) src = virStorageSourceNew();
|
||||
|
||||
return virDomainDiskDefNewSource(xmlopt, &src);
|
||||
}
|
||||
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user