Annotation of /trunk/kernel-magellan/patches-3.17/0105-3.17.6-all-fixes.patch
Parent Directory | Revision Log
Revision 2536 -
(hide annotations)
(download)
Fri Jan 30 10:05:33 2015 UTC (9 years, 7 months ago) by niro
File size: 1623 byte(s)
Fri Jan 30 10:05:33 2015 UTC (9 years, 7 months ago) by niro
File size: 1623 byte(s)
-linux-3.17.6
1 | niro | 2536 | diff --git a/Makefile b/Makefile |
2 | index 42585f6a819a..bb43e9e6a79c 100644 | ||
3 | --- a/Makefile | ||
4 | +++ b/Makefile | ||
5 | @@ -1,6 +1,6 @@ | ||
6 | VERSION = 3 | ||
7 | PATCHLEVEL = 17 | ||
8 | -SUBLEVEL = 5 | ||
9 | +SUBLEVEL = 6 | ||
10 | EXTRAVERSION = | ||
11 | NAME = Shuffling Zombie Juror | ||
12 | |||
13 | diff --git a/net/netfilter/nf_conntrack_core.c b/net/netfilter/nf_conntrack_core.c | ||
14 | index ec94ba94079f..de88c4ab5146 100644 | ||
15 | --- a/net/netfilter/nf_conntrack_core.c | ||
16 | +++ b/net/netfilter/nf_conntrack_core.c | ||
17 | @@ -611,16 +611,12 @@ __nf_conntrack_confirm(struct sk_buff *skb) | ||
18 | */ | ||
19 | NF_CT_ASSERT(!nf_ct_is_confirmed(ct)); | ||
20 | pr_debug("Confirming conntrack %p\n", ct); | ||
21 | - | ||
22 | - /* We have to check the DYING flag after unlink to prevent | ||
23 | - * a race against nf_ct_get_next_corpse() possibly called from | ||
24 | - * user context, else we insert an already 'dead' hash, blocking | ||
25 | - * further use of that particular connection -JM. | ||
26 | - */ | ||
27 | - nf_ct_del_from_dying_or_unconfirmed_list(ct); | ||
28 | + /* We have to check the DYING flag inside the lock to prevent | ||
29 | + a race against nf_ct_get_next_corpse() possibly called from | ||
30 | + user context, else we insert an already 'dead' hash, blocking | ||
31 | + further use of that particular connection -JM */ | ||
32 | |||
33 | if (unlikely(nf_ct_is_dying(ct))) { | ||
34 | - nf_ct_add_to_dying_list(ct); | ||
35 | nf_conntrack_double_unlock(hash, reply_hash); | ||
36 | local_bh_enable(); | ||
37 | return NF_ACCEPT; | ||
38 | @@ -640,6 +636,8 @@ __nf_conntrack_confirm(struct sk_buff *skb) | ||
39 | zone == nf_ct_zone(nf_ct_tuplehash_to_ctrack(h))) | ||
40 | goto out; | ||
41 | |||
42 | + nf_ct_del_from_dying_or_unconfirmed_list(ct); | ||
43 | + | ||
44 | /* Timer relative to confirmation time, not original | ||
45 | setting time, otherwise we'd get timer wrap in | ||
46 | weird delay cases. */ |