xenserver: Various fixes for vif script
[openvswitch] / vswitchd / ovs-brcompatd.c
index d0568a48d91445e75030d41907848b02eeff5a73..dd7ea42f7a74b6317101429efef93585b1183476 100644 (file)
@@ -498,8 +498,6 @@ del_bridge(const struct ovsrec_open_vswitch *ovs, const char *br_name)
 
     del_port(br, br_name);
 
-    ovsrec_bridge_delete(br);
-
     bridges = xmalloc(sizeof *ovs->bridges * ovs->n_bridges);
     for (i = n = 0; i < ovs->n_bridges; i++) {
         if (ovs->bridges[i] != br) {
@@ -509,6 +507,9 @@ del_bridge(const struct ovsrec_open_vswitch *ovs, const char *br_name)
     ovsrec_open_vswitch_set_bridges(ovs, bridges, n);
     free(bridges);
 
+    /* Delete the bridge itself. */
+    ovsrec_bridge_delete(br);
+
     VLOG_INFO("delbr %s: success", br_name);
 
     return 0;