summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaisuke Matsuda <matsuda-daisuke@fujitsu.com>2022-03-28 11:34:22 +0900
committerThomas Haller <thaller@redhat.com>2022-03-28 10:52:01 +0200
commitfc2fab99b2829f7641c8c509a5adf69b33834e99 (patch)
tree2eb27f72a43dca383e5d1fe8b2020ed5007cf43c
parent979dbd6d0dfd96c3397b3d437822647b5a3fc0f5 (diff)
platform: add log detail for ENODEV at do_delete_object()
Deactivation of a NIC invokes deletion of qdisc. An ENODEV error can be generated on deactivation of a virtual NIC when the kernel driver has already deleted the device along with the qdisc. https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/1165
-rw-r--r--src/libnm-platform/nm-linux-platform.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/libnm-platform/nm-linux-platform.c b/src/libnm-platform/nm-linux-platform.c
index b0fc16d780..00fa167d05 100644
--- a/src/libnm-platform/nm-linux-platform.c
+++ b/src/libnm-platform/nm-linux-platform.c
@@ -7405,6 +7405,8 @@ do_delete_object(NMPlatform *platform, const NMPObject *obj_id, struct nl_msg *n
&& NM_IN_SET(NMP_OBJECT_GET_TYPE(obj_id), NMP_OBJECT_TYPE_IP6_ADDRESS)) {
/* On RHEL7 kernel, deleting a non existing address fails with ENXIO */
log_detail = ", meaning the address was already removed";
+ } else if (NM_IN_SET(-((int) seq_result), ENODEV)) {
+ log_detail = ", meaning the device was already removed";
} else if (NM_IN_SET(-((int) seq_result), EADDRNOTAVAIL)
&& NM_IN_SET(NMP_OBJECT_GET_TYPE(obj_id),
NMP_OBJECT_TYPE_IP4_ADDRESS,