Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=3151a9ab04714d0323efbe3c6c12bc5b2b1f058d
Commit:     3151a9ab04714d0323efbe3c6c12bc5b2b1f058d
Parent:     90754f8ec011c91382ece2849a43b8f8aa8a0105
Author:     Pavel Emelyanov <[EMAIL PROTECTED]>
AuthorDate: Wed Jan 9 00:31:49 2008 -0800
Committer:  David S. Miller <[EMAIL PROTECTED]>
CommitDate: Mon Jan 28 15:01:09 2008 -0800

    [DECNET]: Switch to using ctl_paths.
    
    The decnet includes two places to patch. The first one is
    the net/decnet table itself, and it is patched just like
    other subsystems in the first patch in this series.
    
    The second place is a bit more complex - it is the
    net/decnet/conf/xxx entries,. similar to those in
    ipv4/devinet.c and ipv6/addrconf.c. This code is made similar
    to those in ipv[46].
    
    Signed-off-by: Pavel Emelyanov <[EMAIL PROTECTED]>
    Signed-off-by: David S. Miller <[EMAIL PROTECTED]>
---
 net/decnet/dn_dev.c            |   52 +++++++++++----------------------------
 net/decnet/sysctl_net_decnet.c |   23 ++++--------------
 2 files changed, 20 insertions(+), 55 deletions(-)

diff --git a/net/decnet/dn_dev.c b/net/decnet/dn_dev.c
index 39c89c6..1bbfce5 100644
--- a/net/decnet/dn_dev.c
+++ b/net/decnet/dn_dev.c
@@ -173,10 +173,6 @@ static int dn_forwarding_sysctl(ctl_table *table, int 
__user *name, int nlen,
 static struct dn_dev_sysctl_table {
        struct ctl_table_header *sysctl_header;
        ctl_table dn_dev_vars[5];
-       ctl_table dn_dev_dev[2];
-       ctl_table dn_dev_conf_dir[2];
-       ctl_table dn_dev_proto_dir[2];
-       ctl_table dn_dev_root_dir[2];
 } dn_dev_sysctl = {
        NULL,
        {
@@ -224,30 +220,6 @@ static struct dn_dev_sysctl_table {
        },
        {0}
        },
-       {{
-               .ctl_name = 0,
-               .procname = "",
-               .mode = 0555,
-               .child = dn_dev_sysctl.dn_dev_vars
-       }, {0}},
-       {{
-               .ctl_name = NET_DECNET_CONF,
-               .procname = "conf",
-               .mode = 0555,
-               .child = dn_dev_sysctl.dn_dev_dev
-       }, {0}},
-       {{
-               .ctl_name = NET_DECNET,
-               .procname = "decnet",
-               .mode = 0555,
-               .child = dn_dev_sysctl.dn_dev_conf_dir
-       }, {0}},
-       {{
-               .ctl_name = CTL_NET,
-               .procname = "net",
-               .mode = 0555,
-               .child = dn_dev_sysctl.dn_dev_proto_dir
-       }, {0}}
 };
 
 static void dn_dev_sysctl_register(struct net_device *dev, struct dn_dev_parms 
*parms)
@@ -255,6 +227,16 @@ static void dn_dev_sysctl_register(struct net_device *dev, 
struct dn_dev_parms *
        struct dn_dev_sysctl_table *t;
        int i;
 
+#define DN_CTL_PATH_DEV        3
+
+       struct ctl_path dn_ctl_path[] = {
+               { .procname = "net", .ctl_name = CTL_NET, },
+               { .procname = "decnet", .ctl_name = NET_DECNET, },
+               { .procname = "conf", .ctl_name = NET_DECNET_CONF, },
+               { /* to be set */ },
+               { },
+       };
+
        t = kmemdup(&dn_dev_sysctl, sizeof(*t), GFP_KERNEL);
        if (t == NULL)
                return;
@@ -265,20 +247,16 @@ static void dn_dev_sysctl_register(struct net_device 
*dev, struct dn_dev_parms *
        }
 
        if (dev) {
-               t->dn_dev_dev[0].procname = dev->name;
-               t->dn_dev_dev[0].ctl_name = dev->ifindex;
+               dn_ctl_path[DN_CTL_PATH_DEV].procname = dev->name;
+               dn_ctl_path[DN_CTL_PATH_DEV].ctl_name = dev->ifindex;
        } else {
-               t->dn_dev_dev[0].procname = parms->name;
-               t->dn_dev_dev[0].ctl_name = parms->ctl_name;
+               dn_ctl_path[DN_CTL_PATH_DEV].procname = parms->name;
+               dn_ctl_path[DN_CTL_PATH_DEV].ctl_name = parms->ctl_name;
        }
 
-       t->dn_dev_dev[0].child = t->dn_dev_vars;
-       t->dn_dev_conf_dir[0].child = t->dn_dev_dev;
-       t->dn_dev_proto_dir[0].child = t->dn_dev_conf_dir;
-       t->dn_dev_root_dir[0].child = t->dn_dev_proto_dir;
        t->dn_dev_vars[0].extra1 = (void *)dev;
 
-       t->sysctl_header = register_sysctl_table(t->dn_dev_root_dir);
+       t->sysctl_header = register_sysctl_paths(dn_ctl_path, t->dn_dev_vars);
        if (t->sysctl_header == NULL)
                kfree(t);
        else
diff --git a/net/decnet/sysctl_net_decnet.c b/net/decnet/sysctl_net_decnet.c
index ae354a4..228067c 100644
--- a/net/decnet/sysctl_net_decnet.c
+++ b/net/decnet/sysctl_net_decnet.c
@@ -470,28 +470,15 @@ static ctl_table dn_table[] = {
        {0}
 };
 
-static ctl_table dn_dir_table[] = {
-       {
-               .ctl_name = NET_DECNET,
-               .procname = "decnet",
-               .mode = 0555,
-               .child = dn_table},
-       {0}
-};
-
-static ctl_table dn_root_table[] = {
-       {
-               .ctl_name = CTL_NET,
-               .procname = "net",
-               .mode = 0555,
-               .child = dn_dir_table
-       },
-       {0}
+static struct ctl_path dn_path[] = {
+       { .procname = "net", .ctl_name = CTL_NET, },
+       { .procname = "decnet", .ctl_name = NET_DECNET, },
+       { }
 };
 
 void dn_register_sysctl(void)
 {
-       dn_table_header = register_sysctl_table(dn_root_table);
+       dn_table_header = register_sysctl_paths(dn_path, dn_table);
 }
 
 void dn_unregister_sysctl(void)
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to