mirror of
https://gitlab.freedesktop.org/NetworkManager/NetworkManager.git
synced 2026-02-11 07:10:36 +01:00
device: release and enslave an interface if its master changed
In case of an atomic master change, we'd not notice that the master changed: ip link set dummy0 master bridge0 ip link set dummy0 master bridge1
This commit is contained in:
parent
8b77b93169
commit
81553b6978
1 changed files with 3 additions and 2 deletions
|
|
@ -1180,6 +1180,8 @@ device_link_changed (NMDevice *self, NMPlatformLink *info)
|
|||
}
|
||||
|
||||
/* Update slave status for external changes */
|
||||
if (priv->enslaved && info->master != nm_device_get_ifindex (priv->master))
|
||||
nm_device_release_one_slave (priv->master, self, FALSE, NM_DEVICE_STATE_REASON_NONE);
|
||||
if (info->master && !priv->enslaved) {
|
||||
NMDevice *master;
|
||||
|
||||
|
|
@ -1197,8 +1199,7 @@ device_link_changed (NMDevice *self, NMPlatformLink *info)
|
|||
info->master,
|
||||
nm_platform_link_get_name (info->master));
|
||||
}
|
||||
} else if (priv->enslaved && !info->master)
|
||||
nm_device_release_one_slave (priv->master, self, FALSE, NM_DEVICE_STATE_REASON_NONE);
|
||||
}
|
||||
|
||||
if (klass->link_changed)
|
||||
klass->link_changed (self, info);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue