summaryrefslogtreecommitdiffstats
path: root/kernel/taskstats.c
diff options
context:
space:
mode:
authorJohannes Berg <johannes@sipsolutions.net>2009-07-10 09:51:32 +0000
committerDavid S. Miller <davem@davemloft.net>2009-07-12 14:03:24 -0700
commit6c04bb18ddd633b7feac2c8fe2ae0bf61d20ca7a (patch)
treed80582a2c3c248acef1193291a1888ffd588e9fd /kernel/taskstats.c
parent487420df79f1d9f5b9de74c9bef378609c475a39 (diff)
downloadlinux-stable-6c04bb18ddd633b7feac2c8fe2ae0bf61d20ca7a.tar.gz
linux-stable-6c04bb18ddd633b7feac2c8fe2ae0bf61d20ca7a.tar.bz2
linux-stable-6c04bb18ddd633b7feac2c8fe2ae0bf61d20ca7a.zip
netlink: use call_rcu for netlink_change_ngroups
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: Johannes Berg <johannes@sipsolutions.net> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'kernel/taskstats.c')
0 files changed, 0 insertions, 0 deletions