• J
    netlink: use call_rcu for netlink_change_ngroups · 6c04bb18
    Johannes Berg 提交于
    For the network namespace work in generic netlink I need
    to be able to call this function under rcu_read_lock(),
    otherwise the locking becomes a nightmare and more locks
    would be needed. Instead, just embed a struct rcu_head
    (actually a struct listeners_rcu_head that also carries
    the pointer to the memory block) into the listeners
    memory so we can use call_rcu() instead of synchronising
    and then freeing. No rcu_barrier() is needed since this
    code cannot be modular.
    Signed-off-by: NJohannes Berg <johannes@sipsolutions.net>
    Signed-off-by: NDavid S. Miller <davem@davemloft.net>
    6c04bb18
af_netlink.c 46.2 KB