[libvirt] [PATCHv2 7/6] net: Mark network persistent when assigning persistent definition
Eric Blake
eblake at redhat.com
Thu Nov 1 15:25:16 UTC 2012
On 10/29/2012 03:35 AM, Peter Krempa wrote:
> When assigning the new persistent definition for a transient network
> (thus making it persistent) the network needs to be marked persistent
> before actually atempting to assign the definition.
> ---
> src/network/bridge_driver.c | 16 +++++++++++-----
> 1 file changed, 11 insertions(+), 5 deletions(-)
You might want to get Laine's opinion as well, but I think this is a
candidate for 1.0.0, and looks right to me.
ACK.
>
> diff --git a/src/network/bridge_driver.c b/src/network/bridge_driver.c
> index 22bd99b..643b00c 100644
> --- a/src/network/bridge_driver.c
> +++ b/src/network/bridge_driver.c
> @@ -2820,7 +2820,7 @@ cleanup:
>
> static virNetworkPtr networkDefine(virConnectPtr conn, const char *xml) {
> struct network_driver *driver = conn->networkPrivateData;
> - virNetworkDefPtr def;
> + virNetworkDefPtr def = NULL;
> bool freeDef = true;
> virNetworkObjPtr network = NULL;
> virNetworkPtr ret = NULL;
> @@ -2833,11 +2833,17 @@ static virNetworkPtr networkDefine(virConnectPtr conn, const char *xml) {
> if (networkValidate(driver, def, false) < 0)
> goto cleanup;
>
> - if (!(network = virNetworkAssignDef(&driver->networks, def, false)))
> - goto cleanup;
> - freeDef = false;
> + if ((network = virNetworkFindByName(&driver->networks, def->name))) {
> + network->persistent = 1;
> + if (virNetworkObjAssignDef(network, def, false) < 0)
> + goto cleanup;
> + } else {
> + if (!(network = virNetworkAssignDef(&driver->networks, def, false)))
> + goto cleanup;
> + }
>
> - network->persistent = 1;
> + /* def was asigned */
> + freeDef = false;
>
> if (virNetworkSaveConfig(driver->networkConfigDir, def) < 0) {
> virNetworkRemoveInactive(&driver->networks, network);
>
--
Eric Blake eblake at redhat.com +1-919-301-3266
Libvirt virtualization library http://libvirt.org
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 617 bytes
Desc: OpenPGP digital signature
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20121101/50343b61/attachment-0001.sig>
More information about the libvir-list
mailing list