[Libvirt-cim] [PATCH] Fix pool_member_of() for Net devices of type network
Deepti B Kalakeri
deeptik at linux.vnet.ibm.com
Thu May 29 07:13:02 UTC 2008
+1 for me.
Dan Smith wrote:
> # HG changeset patch
> # User Dan Smith <danms at us.ibm.com>
> # Date 1211984997 25200
> # Node ID edf43e3ad962d666500b682a19aea71267be7e4b
> # Parent e987c6ce099434eddec21ca021eba5cd37c4e946
> Fix pool_member_of() for Net devices of type network
>
> Some assumptions were made in this code about what the source field contained
> which were no longer correct when we added network (instead of bridge)
> support. This patch checks the type and interprets the field correctly.
>
> This fixes RAFP for domains with 'network' interfaces for me.
>
> Signed-off-by: Dan Smith <danms at us.ibm.com>
>
> diff -r e987c6ce0994 -r edf43e3ad962 src/Virt_DevicePool.c
> --- a/src/Virt_DevicePool.c Tue May 20 10:33:56 2008 -0700
> +++ b/src/Virt_DevicePool.c Wed May 28 07:29:57 2008 -0700
> @@ -378,13 +378,20 @@
> }
>
> static char *_netpool_member_of(virConnectPtr conn,
> - const char *bridge)
> + const struct net_device *ndev)
> {
> virNetworkPtr net = NULL;
> const char *netname;
> char *pool = NULL;
>
> - net = bridge_to_network(conn, bridge);
> + if (STREQ(ndev->type, "bridge"))
> + net = bridge_to_network(conn, ndev->source);
> + else if (STREQ(ndev->type, "network"))
> + net = virNetworkLookupByName(conn, ndev->source);
> + else {
> + CU_DEBUG("Unhandled network type `%s'", ndev->type);
> + }
> +
> if (net == NULL)
> goto out;
>
> @@ -395,7 +402,7 @@
> if (asprintf(&pool, "NetworkPool/%s", netname) == -1)
> pool = NULL;
>
> - CU_DEBUG("Determined pool: %s (%s, %s)", pool, bridge, netname);
> + CU_DEBUG("Determined pool: %s (%s, %s)", pool, ndev->source, netname);
>
> out:
> virNetworkFree(net);
> @@ -435,7 +442,7 @@
> for (i = 0; i < count; i++) {
> if (STREQ((devs[i].id), dev)) {
> result = _netpool_member_of(conn,
> - devs[i].dev.net.source);
> + &devs[i].dev.net);
> break;
> }
> }
>
> _______________________________________________
> Libvirt-cim mailing list
> Libvirt-cim at redhat.com
> https://www.redhat.com/mailman/listinfo/libvirt-cim
>
More information about the Libvirt-cim
mailing list