1
0
mirror of https://github.com/systemd/systemd.git synced 2025-03-06 00:58:29 +03:00

network: unset master ifindex only when necessary

This commit is contained in:
Yu Watanabe 2022-05-13 08:36:50 +09:00
parent 4d79af57ca
commit 53c2e3b9ba

View File

@ -797,20 +797,28 @@ int link_request_to_set_master(Link *link) {
assert(link->network);
if (link->network->keep_master) {
/* When KeepMaster=yes, BatmanAdvanced=, Bond=, Bridge=, and VRF= are ignored. */
link->master_set = true;
return 0;
}
link->master_set = false;
if (link->network->batadv || link->network->bond || link->network->bridge || link->network->vrf)
} else if (link->network->batadv || link->network->bond || link->network->bridge || link->network->vrf) {
link->master_set = false;
return link_request_set_link(link, REQUEST_TYPE_SET_LINK_MASTER,
link_set_master_handler,
NULL);
else
} else if (link->master_ifindex != 0) {
/* Unset master only when it is set. */
link->master_set = false;
return link_request_set_link(link, REQUEST_TYPE_SET_LINK_MASTER,
link_unset_master_handler,
NULL);
} else {
/* Nothing we need to do. */
link->master_set = true;
return 0;
}
}
int link_request_to_set_mtu(Link *link, uint32_t mtu) {