mirror of
https://gitlab.freedesktop.org/NetworkManager/NetworkManager.git
synced 2026-05-15 12:28:06 +02:00
device: don't ignore external slave removals
We've been outright ignoring master-slave checks if the link ended up without a master since commit2e22880894('device: don't remove the device from master if its link has no master'). This was done to deal with OpenVSwitch port-interface relationship, where the interface's platform link lacked an actual master in platform (what matters there is the OVSDB entry), but the fix was too wide. Let's be more diligent about limiting the special case to OpenVSwitch interfaces. Morale: Write better commit messages of future you is going to be upset Fixes:2e22880894('device: don't remove the device from master if its link has no master')
This commit is contained in:
parent
12e5b944f6
commit
269c39b366
1 changed files with 10 additions and 6 deletions
|
|
@ -6536,12 +6536,16 @@ device_recheck_slave_status(NMDevice *self, const NMPlatformLink *plink)
|
|||
|
||||
g_return_if_fail(plink);
|
||||
|
||||
if (plink->master <= 0)
|
||||
goto out;
|
||||
|
||||
master = nm_manager_get_device_by_ifindex(NM_MANAGER_GET, plink->master);
|
||||
plink_master = nm_platform_link_get(nm_device_get_platform(self), plink->master);
|
||||
plink_master_keep_alive = nmp_object_ref(NMP_OBJECT_UP_CAST(plink_master));
|
||||
if (plink->master > 0) {
|
||||
master = nm_manager_get_device_by_ifindex(NM_MANAGER_GET, plink->master);
|
||||
plink_master = nm_platform_link_get(nm_device_get_platform(self), plink->master);
|
||||
plink_master_keep_alive = nmp_object_ref(NMP_OBJECT_UP_CAST(plink_master));
|
||||
} else {
|
||||
if (priv->master_ifindex == 0)
|
||||
goto out;
|
||||
master = NULL;
|
||||
plink_master = NULL;
|
||||
}
|
||||
|
||||
if (master == NULL && plink_master
|
||||
&& NM_IN_STRSET(plink_master->name, "ovs-system", "ovs-netdev")
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue