diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index 731ed067b726a96087b8e7bd07d090862b784bf6..12902419235f37e9250b8e1eea144820d3f11a18 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -2279,7 +2279,7 @@ virDomainControllerIsPSeriesPHB(const virDomainControllerDef *cont) virDomainFSDefPtr -virDomainFSDefNew(virDomainXMLOptionPtr xmlopt G_GNUC_UNUSED) +virDomainFSDefNew(virDomainXMLOptionPtr xmlopt) { virDomainFSDefPtr ret; @@ -2289,6 +2289,11 @@ virDomainFSDefNew(virDomainXMLOptionPtr xmlopt G_GNUC_UNUSED) if (!(ret->src = virStorageSourceNew())) goto cleanup; + if (xmlopt && + xmlopt->privateData.fsNew && + !(ret->privateData = xmlopt->privateData.fsNew())) + goto cleanup; + return ret; cleanup: diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h index 16653e8aac18e1a3e92beea83bdd184a0436b35d..c3a6ccdcda9bb4743c4b96714955c0ee0d41417a 100644 --- a/src/conf/domain_conf.h +++ b/src/conf/domain_conf.h @@ -817,6 +817,7 @@ struct _virDomainFSDef { unsigned long long space_soft_limit; /* in bytes */ bool symlinksResolved; virDomainVirtioOptionsPtr virtio; + virObjectPtr privateData; }; @@ -2740,6 +2741,7 @@ struct _virDomainXMLPrivateDataCallbacks { virDomainXMLPrivateDataNewFunc graphicsNew; virDomainXMLPrivateDataNewFunc networkNew; virDomainXMLPrivateDataNewFunc videoNew; + virDomainXMLPrivateDataNewFunc fsNew; virDomainXMLPrivateDataFormatFunc format; virDomainXMLPrivateDataParseFunc parse; /* following function shall return a pointer which will be used as the