platform-linux: reload qdiscs and tfilters after removing them

Kernel (as of 4.14) merely ACKs our RTM_DELQDISC and RTM_DELTFILTER, not
bothering to signal the full RTM_DEL* message unless the removal is
external to NetworkManager.

https://bugzilla.redhat.com/show_bug.cgi?id=1527197
This commit is contained in:
Lubomir Rintel
2018-01-08 13:51:53 +01:00
parent fc8d1d6f9f
commit f3b4053a91

View File

@@ -4684,7 +4684,10 @@ do_delete_object (NMPlatform *platform, const NMPObject *obj_id, struct nl_msg *
wait_for_nl_response_to_string (seq_result, s_buf, sizeof (s_buf)),
log_detail);
if (NMP_OBJECT_GET_TYPE (obj_id) == NMP_OBJECT_TYPE_IP6_ADDRESS) {
if (NM_IN_SET (NMP_OBJECT_GET_TYPE (obj_id),
NMP_OBJECT_TYPE_IP6_ADDRESS,
NMP_OBJECT_TYPE_QDISC,
NMP_OBJECT_TYPE_TFILTER)) {
/* In rare cases, the object is still there after we receive the ACK from
* kernel. Need to refetch.
*