From d9c67ea112724e271c39553d966eae612e272e34 Mon Sep 17 00:00:00 2001 From: Tom Gundersen Date: Fri, 9 May 2014 12:20:21 +0200 Subject: [PATCH] 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. --- src/network/networkd-link.c | 44 ++++++++++++++++++------------------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/src/network/networkd-link.c b/src/network/networkd-link.c index 0a228b29a1..7cb9ee6754 100644 --- a/src/network/networkd-link.c +++ b/src/network/networkd-link.c @@ -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'",