netlink: update listeners directly when removing socket
authorJohannes Berg <johannes.berg@intel.com>
Mon, 22 Dec 2014 17:56:37 +0000 (18:56 +0100)
committerDavid S. Miller <davem@davemloft.net>
Sat, 27 Dec 2014 07:20:23 +0000 (02:20 -0500)
commitb10dcb3b94010e3ac3951f68789400b1665effb1
tree5ec269ffbedc0117a3246ad32691b78e03402abd
parentf8403a2e47afb37bcd3b7e286996d138a116c39d
netlink: update listeners directly when removing socket

The code is now confusing to read - first in one function down
(netlink_remove) any group subscriptions are implicitly removed
by calling __sk_del_bind_node(), but the subscriber database is
only updated far later by calling netlink_update_listeners().

Move the latter call to just after removal from the list so it
is easier to follow the code.

This also enables moving the locking inside the kernel-socket
conditional, which improves the normal socket destruction path.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/netlink/af_netlink.c