networkd: bridge - remove redundant state

We will not insist on getting the reply from rtnl that the bridge
was created before considering the bridge ready, as we will be
notified about that via udev. We will listen for the rtnl response
however, in case the creation of the bridge failed.
This commit is contained in:
Tom Gundersen
2014-01-12 15:37:21 +01:00
parent f46685a4c0
commit 924fe4304a
2 changed files with 9 additions and 12 deletions
+9 -11
View File
@@ -113,6 +113,9 @@ static int bridge_join_ready(Bridge *bridge, Link* link, sd_rtnl_message_handler
static int bridge_enter_ready(Bridge *bridge) {
bridge_join_callback *callback;
assert(bridge);
assert(bridge->name);
bridge->state = BRIDGE_STATE_READY;
log_info_bridge(bridge, "bridge ready");
@@ -130,7 +133,7 @@ static int bridge_create_handler(sd_rtnl *rtnl, sd_rtnl_message *m, void *userda
Bridge *bridge = userdata;
int r;
assert(bridge->state == BRIDGE_STATE_CREATING);
assert(bridge->state != _BRIDGE_STATE_INVALID);
r = sd_rtnl_message_get_errno(m);
if (r < 0) {
@@ -140,11 +143,6 @@ static int bridge_create_handler(sd_rtnl *rtnl, sd_rtnl_message *m, void *userda
return 1;
}
if (bridge->link)
bridge_enter_ready(bridge);
else
bridge->state = BRIDGE_STATE_CREATED;
return 1;
}
@@ -234,18 +232,18 @@ int bridge_join(Bridge *bridge, Link *link, sd_rtnl_message_handler_t callback)
int bridge_set_link(Manager *m, Link *link) {
Bridge *bridge;
int r;
bridge = hashmap_get(m->bridges, link->ifname);
if (!bridge)
return -ENOENT;
r = bridge_get(m, link->ifname, &bridge);
if (r < 0)
return r;
if (bridge->link && bridge->link != link)
return -EEXIST;
bridge->link = link;
if (bridge->state == BRIDGE_STATE_CREATED)
bridge_enter_ready(bridge);
bridge_enter_ready(bridge);
return 0;
}
-1
View File
@@ -52,7 +52,6 @@ struct bridge_join_callback {
typedef enum BridgeState {
BRIDGE_STATE_FAILED,
BRIDGE_STATE_CREATING,
BRIDGE_STATE_CREATED,
BRIDGE_STATE_READY,
_BRIDGE_STATE_MAX,
_BRIDGE_STATE_INVALID = -1,