[libvirt] [PATCH libvirt] interface: don't error out if a bond has no interfaces
Laine Stump
laine at laine.org
Wed May 27 18:39:27 UTC 2015
On 05/27/2015 01:30 PM, Lubomir Rintel wrote:
> It's not a problem at all and causes virt-manager to break down.
>
> Note: netcf 0.2.8 generates invalid XML for a bond with no interfaces anyway,
> so this error is in fact not reached as we fail earlier. Fix submitted upstream.
ACK.
This patch also makes bonds more consistent with bridges, which also
require the <bridge> element, but allow it to be empty.
Since this is a bugfix and straightforward, I'm pushing it now (after
adding a small bit to the commit log, and changing "ret" initialization
from 0 to -1, so that it's more in line with the rest of libvirt's
code), and will be looking at the netcf patch momentarily.
Thanks for taking the time to report this error with a patch :-)
>
> Signed-off-by: Lubomir Rintel <lkundrak at v3.sk>
> ---
> src/conf/interface_conf.c | 16 ++++++----------
> 1 file changed, 6 insertions(+), 10 deletions(-)
>
> diff --git a/src/conf/interface_conf.c b/src/conf/interface_conf.c
> index c2eb945..29769ac 100644
> --- a/src/conf/interface_conf.c
> +++ b/src/conf/interface_conf.c
> @@ -553,19 +553,15 @@ virInterfaceDefParseBondItfs(virInterfaceDefPtr def,
> nbItf = virXPathNodeSet("./interface", ctxt, &interfaces);
> if (nbItf < 0) {
> ret = -1;
> - goto error;
> + goto cleanup;
> }
>
> - if (nbItf == 0) {
> - virReportError(VIR_ERR_XML_ERROR,
> - "%s", _("bond has no interfaces"));
> - ret = -1;
> - goto error;
> - }
> + if (nbItf == 0)
> + goto cleanup;
>
> if (VIR_ALLOC_N(def->data.bond.itf, nbItf) < 0) {
> ret = -1;
> - goto error;
> + goto cleanup;
> }
> def->data.bond.nbItf = nbItf;
>
> @@ -575,12 +571,12 @@ virInterfaceDefParseBondItfs(virInterfaceDefPtr def,
> if (itf == NULL) {
> ret = -1;
> def->data.bond.nbItf = i;
> - goto error;
> + goto cleanup;
> }
> def->data.bond.itf[i] = itf;
> }
>
> - error:
> + cleanup:
> VIR_FREE(interfaces);
> ctxt->node = bond;
> return ret;
More information about the libvir-list
mailing list