diff options
author | Wen Liang <liangwen12year@gmail.com> | 2022-02-15 14:00:18 -0500 |
---|---|---|
committer | Wen Liang <liangwen12year@gmail.com> | 2022-02-23 15:47:20 -0500 |
commit | 9f6114afe884fc56d19bbfbdf22a0b68d907d0cd (patch) | |
tree | 2c285f0a49dce1f97baf8692797febcd18e70994 | |
parent | 59c60cccf54bcb8067c20b5e4751c8c041498058 (diff) | |
download | NetworkManager-9f6114afe884fc56d19bbfbdf22a0b68d907d0cd.tar.gz |
device: commit the l3cd changes via l3cfg during cleanup
After the first time committing, the routes and addresses are removed
directly by bypassing the l3cfg in `nm_device_cleanup()`, then when
committing the second time, the l3cfg think that some addresses are
still configured but they are actually already disappeared from the
kernel already.
To fix it, commit the l3cd changes through l3cfg instead of removing
the addresses/routes directly.
-rw-r--r-- | src/core/devices/nm-device.c | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/src/core/devices/nm-device.c b/src/core/devices/nm-device.c index bebfc4c3ab..78fecb1140 100644 --- a/src/core/devices/nm-device.c +++ b/src/core/devices/nm-device.c @@ -15079,8 +15079,7 @@ nm_device_cleanup(NMDevice *self, NMDeviceStateReason reason, CleanupType cleanu if (ifindex > 0) { NMPlatform *platform = nm_device_get_platform(self); - nm_platform_ip_route_flush(platform, AF_UNSPEC, ifindex); - nm_platform_ip_address_flush(platform, AF_UNSPEC, ifindex); + nm_device_l3cfg_commit(self, NM_L3_CFG_COMMIT_TYPE_REAPPLY, TRUE); if (nm_device_get_applied_setting(self, NM_TYPE_SETTING_TC_CONFIG)) { nm_platform_tc_sync(platform, ifindex, NULL, NULL); |