mirror of
https://github.com/clearlinux/systemd-stable.git
synced 2026-10-04 07:48:36 +00:00
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:
+22
-22
@@ -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'",
|
||||
|
||||
Reference in New Issue
Block a user