netfilter: conntrack: fix reading nf_conntrack_buckets
commit5.4-rM2-2.2.x-imx-squashedf6351c3f1c
upstream. The old way of changing the conntrack hashsize runtime was through changing the module param via file /sys/module/nf_conntrack/parameters/hashsize. This was extended to sysctl change in commit3183ab8997
("netfilter: conntrack: allow increasing bucket size via sysctl too"). The commit introduced second "user" variable nf_conntrack_htable_size_user which shadow actual variable nf_conntrack_htable_size. When hashsize is changed via module param this "user" variable isn't updated. This results in sysctl net/netfilter/nf_conntrack_buckets shows the wrong value when users update via the old way. This patch fix the issue by always updating "user" variable when reading the proc file. This will take care of changes to the actual variable without sysctl need to be aware. Fixes:3183ab8997
("netfilter: conntrack: allow increasing bucket size via sysctl too") Reported-by: Yoel Caspersen <yoel@kviknet.dk> Signed-off-by: Jesper Dangaard Brouer <brouer@redhat.com> Acked-by: Florian Westphal <fw@strlen.de> Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
parent
548e4168e6
commit
49fc6d92b4
|
@ -521,6 +521,9 @@ nf_conntrack_hash_sysctl(struct ctl_table *table, int write,
|
||||||
{
|
{
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
|
/* module_param hashsize could have changed value */
|
||||||
|
nf_conntrack_htable_size_user = nf_conntrack_htable_size;
|
||||||
|
|
||||||
ret = proc_dointvec(table, write, buffer, lenp, ppos);
|
ret = proc_dointvec(table, write, buffer, lenp, ppos);
|
||||||
if (ret < 0 || !write)
|
if (ret < 0 || !write)
|
||||||
return ret;
|
return ret;
|
||||||
|
|
Loading…
Reference in New Issue