diff options
author | 2017-07-27 23:14:08 +0200 | |
---|---|---|
committer | 2017-07-27 23:14:08 +0200 | |
commit | f6248dd88dba3aeb19351410a027d92eee7ceb72 (patch) | |
tree | 9dfe33ca030186ffd5007784d0647a8306d41be9 /net/netfilter/nf_nat_core.c | |
parent | ACPI / PM / EC: Flush all EC work in acpi_freeze_sync() (diff) | |
parent | ACPI: NUMA: Fix typo in the full name of SRAT (diff) | |
download | linux-dev-f6248dd88dba3aeb19351410a027d92eee7ceb72.tar.xz linux-dev-f6248dd88dba3aeb19351410a027d92eee7ceb72.zip |
Merge branches 'acpi-pm' and 'acpi-numa'
* acpi-pm:
ACPI / PM / EC: Flush all EC work in acpi_freeze_sync()
ACPI / EC: Add parameter to force disable the GPE on suspend
* acpi-numa:
ACPI: NUMA: Fix typo in the full name of SRAT
ACPI: NUMA: add missing include in acpi_numa.h
Diffstat (limited to 'net/netfilter/nf_nat_core.c')
-rw-r--r-- | net/netfilter/nf_nat_core.c | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/net/netfilter/nf_nat_core.c b/net/netfilter/nf_nat_core.c index 832c5a08d9a5..eb541786ccb7 100644 --- a/net/netfilter/nf_nat_core.c +++ b/net/netfilter/nf_nat_core.c @@ -222,20 +222,21 @@ find_appropriate_src(struct net *net, .tuple = tuple, .zone = zone }; - struct rhlist_head *hl; + struct rhlist_head *hl, *h; hl = rhltable_lookup(&nf_nat_bysource_table, &key, nf_nat_bysource_params); - if (!hl) - return 0; - ct = container_of(hl, typeof(*ct), nat_bysource); + rhl_for_each_entry_rcu(ct, h, hl, nat_bysource) { + nf_ct_invert_tuplepr(result, + &ct->tuplehash[IP_CT_DIR_REPLY].tuple); + result->dst = tuple->dst; - nf_ct_invert_tuplepr(result, - &ct->tuplehash[IP_CT_DIR_REPLY].tuple); - result->dst = tuple->dst; + if (in_range(l3proto, l4proto, result, range)) + return 1; + } - return in_range(l3proto, l4proto, result, range); + return 0; } /* For [FUTURE] fragmentation handling, we want the least-used |