git.openpandora.org
/
pandora-kernel.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch 'stable/bug.fixes' of git://git.kernel.org/pub/scm/linux/kernel/git...
[pandora-kernel.git]
/
net
/
netfilter
/
ipvs
/
ip_vs_conn.c
diff --git
a/net/netfilter/ipvs/ip_vs_conn.c
b/net/netfilter/ipvs/ip_vs_conn.c
index
bf28ac2
..
782db27
100644
(file)
--- a/
net/netfilter/ipvs/ip_vs_conn.c
+++ b/
net/netfilter/ipvs/ip_vs_conn.c
@@
-776,8
+776,16
@@
static void ip_vs_conn_expire(unsigned long data)
if (cp->control)
ip_vs_control_del(cp);
if (cp->control)
ip_vs_control_del(cp);
- if (cp->flags & IP_VS_CONN_F_NFCT)
+ if (cp->flags & IP_VS_CONN_F_NFCT)
{
ip_vs_conn_drop_conntrack(cp);
ip_vs_conn_drop_conntrack(cp);
+ /* Do not access conntracks during subsys cleanup
+ * because nf_conntrack_find_get can not be used after
+ * conntrack cleanup for the net.
+ */
+ smp_rmb();
+ if (ipvs->enable)
+ ip_vs_conn_drop_conntrack(cp);
+ }
ip_vs_pe_put(cp->pe);
kfree(cp->pe_data);
ip_vs_pe_put(cp->pe);
kfree(cp->pe_data);