networkd: reorder bonding and bridging

A link should only ever be part of one, but if we accidentally do both, let's do it
in the right order so the failure is more obvious in the logs.
This commit is contained in:
Tom Gundersen
2014-05-09 14:41:27 +02:00
parent 699370c98d
commit d9c67ea112
+22 -22
View File
@@ -1490,28 +1490,6 @@ static int link_enter_enslave(Link *link) {
hashmap_isempty(link->network->macvlans))
return link_enslaved(link);
if (link->network->bridge) {
log_struct_link(LOG_DEBUG, link,
"MESSAGE=%s: enslaving by '%s'",
link->ifname, link->network->bridge->name,
NETDEV(link->network->bridge),
NULL);
r = netdev_enslave(link->network->bridge, link, &enslave_handler);
if (r < 0) {
log_struct_link(LOG_WARNING, link,
"MESSAGE=%s: could not enslave by '%s': %s",
link->ifname, link->network->bridge->name, strerror(-r),
NETDEV(link->network->bridge),
NULL);
link_enter_failed(link);
return r;
}
link_ref(link);
link->enslaving ++;
}
if (link->network->bond) {
log_struct_link(LOG_DEBUG, link,
"MESSAGE=%s: enslaving by '%s'",
@@ -1534,6 +1512,28 @@ static int link_enter_enslave(Link *link) {
link->enslaving ++;
}
if (link->network->bridge) {
log_struct_link(LOG_DEBUG, link,
"MESSAGE=%s: enslaving by '%s'",
link->ifname, link->network->bridge->name,
NETDEV(link->network->bridge),
NULL);
r = netdev_enslave(link->network->bridge, link, &enslave_handler);
if (r < 0) {
log_struct_link(LOG_WARNING, link,
"MESSAGE=%s: could not enslave by '%s': %s",
link->ifname, link->network->bridge->name, strerror(-r),
NETDEV(link->network->bridge),
NULL);
link_enter_failed(link);
return r;
}
link_ref(link);
link->enslaving ++;
}
HASHMAP_FOREACH(vlan, link->network->vlans, i) {
log_struct_link(LOG_DEBUG, link,
"MESSAGE=%s: enslaving by '%s'",