cilium: only drop consumer from map when really needed
cilium: only drop consumer from map when really needed

My log is often spammed with "Update of policy map failed: Unable to
delete element: no such file or directory" and it's unsure whether it's
a real issue related to policy or not. Debugging this, it turns out we
always hit this on deleteEndpoint() when we delete the Consumable and
search and remove corresponding reverse rules. What happens is that
in deleteReverseRule() the found reverse Consumable has empty ReverseRules[]
where we nevertheless try to delete consumer ID from it and given that
reverse.wasLastRule() holds true we try to remove the consumer ID also
from the map via reverse.removeFromMaps(), but the map doesn't contain
any such ID. This is due to Conntrack being used, so given Conntrack
would have been disabled, then we would find a corresponding reverse
entry here as well. Thus, only delete it when really needed.

Fixes: #1205

Signed-off-by: Daniel Borkmann <3d0f3b9ddcacec30c4008c5e030e6c13a478cb4f@iogearbox.net>

eloycoto/cilium,tgraf/cilium,eloycoto/cilium,tklauser/cilium,tgraf/cilium,eloycoto/cilium,cilium/cilium,tgraf/cilium,eloycoto/cilium,tklauser/cilium,tklauser/cilium,scanf/cilium,eloycoto/cilium,gumpt/cilium,gumpt/cilium,tgraf/cilium,eloycoto/cilium,cilium/cilium,michi-covalent/cilium,tgraf/cilium,michi-covalent/cilium,scanf/cilium,tklauser/cilium,cilium/cilium,cilium/cilium,michi-covalent/cilium,scanf/cilium,eloycoto/cilium,cilium-team/cilium,michi-covalent/cilium,gumpt/cilium,scanf/cilium,cilium/cilium,michi-covalent/cilium,scanf/cilium,gumpt/cilium,cilium-team/cilium,tgraf/cilium,scanf/cilium,gumpt/cilium,tklauser/cilium,gumpt/cilium,scanf/cilium,gumpt/cilium