summaryrefslogtreecommitdiffstats
path: root/net/netfilter/ipvs/ip_vs_pe_sip.c
diff options
context:
space:
mode:
authorJulian Anastasov2013-03-21 10:58:09 +0100
committerPablo Neira Ayuso2013-04-02 00:23:44 +0200
commit60b6aa3b319d902db49dbaee7433fe2ac7d0cdb5 (patch)
tree6b41c22348ab58c270a3703605d98ba6c88327de /net/netfilter/ipvs/ip_vs_pe_sip.c
parentipvs: remove rs_lock by using RCU (diff)
downloadkernel-qcow2-linux-60b6aa3b319d902db49dbaee7433fe2ac7d0cdb5.tar.gz
kernel-qcow2-linux-60b6aa3b319d902db49dbaee7433fe2ac7d0cdb5.tar.xz
kernel-qcow2-linux-60b6aa3b319d902db49dbaee7433fe2ac7d0cdb5.zip
ipvs: convert locks used in persistence engines
Allow the readers to use RCU lock and for PE module registrations use global mutex instead of spinlock. All PE modules need to use synchronize_rcu in their module exit handler. Signed-off-by: Julian Anastasov <ja@ssi.bg> Signed-off by: Hans Schillstrom <hans@schillstrom.com> Signed-off-by: Simon Horman <horms@verge.net.au>
Diffstat (limited to 'net/netfilter/ipvs/ip_vs_pe_sip.c')
-rw-r--r--net/netfilter/ipvs/ip_vs_pe_sip.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/net/netfilter/ipvs/ip_vs_pe_sip.c b/net/netfilter/ipvs/ip_vs_pe_sip.c
index 12475ef88daf..00cc0241ed87 100644
--- a/net/netfilter/ipvs/ip_vs_pe_sip.c
+++ b/net/netfilter/ipvs/ip_vs_pe_sip.c
@@ -172,6 +172,7 @@ static int __init ip_vs_sip_init(void)
static void __exit ip_vs_sip_cleanup(void)
{
unregister_ip_vs_pe(&ip_vs_sip_pe);
+ synchronize_rcu();
}
module_init(ip_vs_sip_init);