diff options
author | Pavel Emelyanov <xemul@openvz.org> | 2008-01-09 03:32:21 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2008-01-28 18:01:09 -0500 |
commit | c6995bdff0fc9f97621922a7f857fa640537a7e2 (patch) | |
tree | 0cf803381e0eff2144e108e3c418ad2d54fa2a16 /net/ax25/sysctl_net_ax25.c | |
parent | 3151a9ab04714d0323efbe3c6c12bc5b2b1f058d (diff) |
[AX25]: Switch to using ctl_paths.
This one is almost the same as the hunks in the
first patch, but ax25 tables are created dynamically.
So this patch differs a bit to handle this case.
Signed-off-by: Pavel Emelyanov <xemul@openvz.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ax25/sysctl_net_ax25.c')
-rw-r--r-- | net/ax25/sysctl_net_ax25.c | 27 |
1 files changed, 5 insertions, 22 deletions
diff --git a/net/ax25/sysctl_net_ax25.c b/net/ax25/sysctl_net_ax25.c index 443a83676638..f597987b2424 100644 --- a/net/ax25/sysctl_net_ax25.c +++ b/net/ax25/sysctl_net_ax25.c | |||
@@ -31,25 +31,11 @@ static struct ctl_table_header *ax25_table_header; | |||
31 | static ctl_table *ax25_table; | 31 | static ctl_table *ax25_table; |
32 | static int ax25_table_size; | 32 | static int ax25_table_size; |
33 | 33 | ||
34 | static ctl_table ax25_dir_table[] = { | 34 | static struct ctl_path ax25_path[] = { |
35 | { | 35 | { .procname = "net", .ctl_name = CTL_NET, }, |
36 | .ctl_name = NET_AX25, | 36 | { .procname = "ax25", .ctl_name = NET_AX25, }, |
37 | .procname = "ax25", | 37 | { } |
38 | .mode = 0555, | ||
39 | }, | ||
40 | { .ctl_name = 0 } | ||
41 | }; | ||
42 | |||
43 | static ctl_table ax25_root_table[] = { | ||
44 | { | ||
45 | .ctl_name = CTL_NET, | ||
46 | .procname = "net", | ||
47 | .mode = 0555, | ||
48 | .child = ax25_dir_table | ||
49 | }, | ||
50 | { .ctl_name = 0 } | ||
51 | }; | 38 | }; |
52 | |||
53 | static const ctl_table ax25_param_table[] = { | 39 | static const ctl_table ax25_param_table[] = { |
54 | { | 40 | { |
55 | .ctl_name = NET_AX25_IP_DEFAULT_MODE, | 41 | .ctl_name = NET_AX25_IP_DEFAULT_MODE, |
@@ -243,9 +229,7 @@ void ax25_register_sysctl(void) | |||
243 | } | 229 | } |
244 | spin_unlock_bh(&ax25_dev_lock); | 230 | spin_unlock_bh(&ax25_dev_lock); |
245 | 231 | ||
246 | ax25_dir_table[0].child = ax25_table; | 232 | ax25_table_header = register_sysctl_paths(ax25_path, ax25_table); |
247 | |||
248 | ax25_table_header = register_sysctl_table(ax25_root_table); | ||
249 | } | 233 | } |
250 | 234 | ||
251 | void ax25_unregister_sysctl(void) | 235 | void ax25_unregister_sysctl(void) |
@@ -253,7 +237,6 @@ void ax25_unregister_sysctl(void) | |||
253 | ctl_table *p; | 237 | ctl_table *p; |
254 | unregister_sysctl_table(ax25_table_header); | 238 | unregister_sysctl_table(ax25_table_header); |
255 | 239 | ||
256 | ax25_dir_table[0].child = NULL; | ||
257 | for (p = ax25_table; p->ctl_name; p++) | 240 | for (p = ax25_table; p->ctl_name; p++) |
258 | kfree(p->child); | 241 | kfree(p->child); |
259 | kfree(ax25_table); | 242 | kfree(ax25_table); |