summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWen Liang <liangwen12year@gmail.com>2022-02-15 14:00:18 -0500
committerWen Liang <liangwen12year@gmail.com>2022-02-23 15:47:20 -0500
commit9f6114afe884fc56d19bbfbdf22a0b68d907d0cd (patch)
tree2c285f0a49dce1f97baf8692797febcd18e70994
parent59c60cccf54bcb8067c20b5e4751c8c041498058 (diff)
downloadNetworkManager-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.c3
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);