This is fine considering the function is refactored later in the series, thanks.
Ethan On Tue, Apr 24, 2012 at 17:06, Ben Pfaff <b...@nicira.com> wrote: > This is the minimal change that gets the job done. There are much nicer > ways to do this, but I'll leave that refactoring for later in the series. > > The return value will have its first user in an upcoming commit. > > Signed-off-by: Ben Pfaff <b...@nicira.com> > --- > vswitchd/bridge.c | 22 +++++++++++++++------- > 1 files changed, 15 insertions(+), 7 deletions(-) > > diff --git a/vswitchd/bridge.c b/vswitchd/bridge.c > index a66052c..c10d76c 100644 > --- a/vswitchd/bridge.c > +++ b/vswitchd/bridge.c > @@ -227,7 +227,7 @@ static bool mirror_configure(struct mirror *); > static void mirror_refresh_stats(struct mirror *); > > static void iface_configure_lacp(struct iface *, struct lacp_slave_settings > *); > -static void iface_create(struct bridge *, struct if_cfg *, int ofp_port); > +static bool iface_create(struct bridge *, struct if_cfg *, int ofp_port); > static const char *iface_get_type(const struct ovsrec_interface *, > const struct ovsrec_bridge *); > static void iface_destroy(struct iface *); > @@ -1255,13 +1255,16 @@ bridge_refresh_ofp_port(struct bridge *br) > /* Creates a new iface on 'br' based on 'if_cfg'. The new iface has OpenFlow > * port number 'ofp_port'. If ofp_port is negative, an OpenFlow port is > * automatically allocated for the iface. Takes ownership of and > - * deallocates 'if_cfg'. */ > -static void > + * deallocates 'if_cfg'. > + * > + * Return true if an iface is successfully created, false otherwise. */ > +static bool > iface_create(struct bridge *br, struct if_cfg *if_cfg, int ofp_port) > { > struct iface *iface; > struct port *port; > int error; > + bool ok; > > assert(!iface_lookup(br, if_cfg->cfg->name)); > > @@ -1332,7 +1335,8 @@ iface_create(struct bridge *br, struct if_cfg *if_cfg, > int ofp_port) > } > > /* Delete the iface if we failed. */ > - if (iface->netdev && iface->ofp_port >= 0) { > + ok = iface->netdev && iface->ofp_port >= 0; > + if (ok) { > VLOG_DBG("bridge %s: interface %s is on port %d", > br->name, iface->name, iface->ofp_port); > } else { > @@ -1356,9 +1360,11 @@ iface_create(struct bridge *br, struct if_cfg *if_cfg, > int ofp_port) > iface_destroy(iface); > } > > - if (list_is_empty(&port->ifaces)) { > - port_destroy(port); > - return; > + if (!ok) { > + if (list_is_empty(&port->ifaces)) { > + port_destroy(port); > + } > + return false; > } > > /* Add bond fake iface if necessary. */ > @@ -1383,6 +1389,8 @@ iface_create(struct bridge *br, struct if_cfg *if_cfg, > int ofp_port) > ofproto_port_destroy(&ofproto_port); > } > } > + > + return true; > } > > /* Set Flow eviction threshold */ > -- > 1.7.2.5 > > _______________________________________________ > dev mailing list > dev@openvswitch.org > http://openvswitch.org/mailman/listinfo/dev _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev