From 9710895378fcbc53da30e95806bb0494d8c1bad5 Mon Sep 17 00:00:00 2001 From: Yu Watanabe Date: Tue, 18 May 2021 14:42:47 +0900 Subject: [PATCH] network: request to configure static settings earlier Now, all static configs should be ordered after the link gains its carrier. So, it is not necessary to wait for that before queuing requests. --- src/network/networkd-link.c | 22 +++++++++------------- 1 file changed, 9 insertions(+), 13 deletions(-) diff --git a/src/network/networkd-link.c b/src/network/networkd-link.c index d117251d48..69c13b2e10 100644 --- a/src/network/networkd-link.c +++ b/src/network/networkd-link.c @@ -825,7 +825,7 @@ void link_check_ready(Link *link) { link_enter_configured(link); } -static int link_set_static_configs(Link *link) { +static int link_request_static_configs(Link *link) { int r; assert(link); @@ -1829,6 +1829,8 @@ static int link_joined(Link *link) { if (r < 0) return r; + link_set_state(link, LINK_STATE_CONFIGURING); + if (link->network->bridge) { r = link_set_bridge(link); if (r < 0) @@ -1853,19 +1855,14 @@ static int link_joined(Link *link) { if (r < 0) log_link_error_errno(link, r, "Could not set bridge vlan: %m"); - /* Skip setting up addresses until it gets carrier, - or it would try to set addresses twice, - which is bad for non-idempotent steps. */ - if (!link_has_carrier(link) && !link->network->configure_without_carrier) - return 0; - - link_set_state(link, LINK_STATE_CONFIGURING); - - r = link_acquire_conf(link); + r = link_request_static_configs(link); if (r < 0) return r; - return link_set_static_configs(link); + if (!link_has_carrier(link)) + return 0; + + return link_acquire_conf(link); } static int netdev_join_handler(sd_netlink *rtnl, sd_netlink_message *m, Link *link) { @@ -2802,8 +2799,7 @@ static int link_carrier_gained(Link *link) { return r; } - link_set_state(link, LINK_STATE_CONFIGURING); - r = link_set_static_configs(link); + r = link_request_static_configs(link); if (r < 0) return r; }