decnet: Fix disappearing sysctl entries
authorEric W. Biederman <ebiederm@xmission.com>
Tue, 12 Mar 2013 00:41:28 +0000 (17:41 -0700)
committerBen Hutchings <ben@decadent.org.uk>
Wed, 20 Mar 2013 15:03:28 +0000 (15:03 +0000)
commit3125bdd601790d03f36343d9d0941c5f94244f27
treef6f959a90a2ebc2dd174c93149e69f45992de4e3
parent3ac94a54e1e69d5e510c92c56dda242a7398ce54
decnet: Fix disappearing sysctl entries

When decnet is built as a module a simple:
echo 0.0 >/proc/sys/net/decnet/node_address

results in most of the sysctl entries under /proc/sys/net/decnet and
/proc/sys/net/decnet/conf disappearing.

For more details see http://www.spinics.net/lists/netdev/msg226123.html.

This change applies the same workaround used in
net/core/sysctl_net_core.c and net/ipv6/sysctl_net_ipv6.c of creating
a skeleton of decnet sysctl entries before doing anything else.

The problem first appeared in kernel 2.6.27.  The later rewrite of
sysctl in kernel 3.4 restored the previous behavior and eliminated the
need for this workaround.

This patch was heavily inspired by a similar but more complex patch by
Larry Baker.

Reported-by: Larry Baker <baker@usgs.gov>
Signed-off-by: "Eric W. Biederman" <ebiederm@xmission.com>
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
net/decnet/af_decnet.c
net/decnet/sysctl_net_decnet.c