]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
network: apply activation policy only when it is once activated
authorYu Watanabe <watanabe.yu+github@gmail.com>
Sun, 6 Jun 2021 06:24:43 +0000 (15:24 +0900)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Tue, 8 Jun 2021 19:59:23 +0000 (04:59 +0900)
Otherwise, e.g., if activation policy is always-up is set for bond
slave, then setting bond configuration may fail.

src/network/networkd-link.c

index d970cd7a1557aff4f3fb24117442217dd57a2934..a894ef6e3b68597e5c979eb68b46d5e9f5d5e015 100644 (file)
@@ -1567,7 +1567,7 @@ static int link_admin_state_up(Link *link) {
         if (!link->network)
                 return 0;
 
-        if (link->network->activation_policy == ACTIVATION_POLICY_ALWAYS_DOWN) {
+        if (link->activated && link->network->activation_policy == ACTIVATION_POLICY_ALWAYS_DOWN) {
                 log_link_info(link, "ActivationPolicy is \"always-off\", forcing link down");
                 return link_down(link);
         }
@@ -1587,7 +1587,7 @@ static int link_admin_state_down(Link *link) {
         if (!link->network)
                 return 0;
 
-        if (link->network->activation_policy == ACTIVATION_POLICY_ALWAYS_UP) {
+        if (link->activated && link->network->activation_policy == ACTIVATION_POLICY_ALWAYS_UP) {
                 log_link_info(link, "ActivationPolicy is \"always-on\", forcing link up");
                 return link_up(link);
         }