From: ebiederm@xmission.com (Eric W. Biederman)
To: Lucian Adrian Grijincu <lucian.grijincu@gmail.com>
Cc: linux-kernel@vger.kernel.org, netdev@vger.kernel.org,
Eric Dumazet <eric.dumazet@gmail.com>,
"David S. Miller" <davem@davemloft.net>,
Octavian Purdila <opurdila@ixiacom.com>
Subject: Re: [PATCH 2/5] sysctl: remove useless ctl_table->parent field
Date: Fri, 04 Feb 2011 11:41:24 -0800 [thread overview]
Message-ID: <m1fws3io4b.fsf@fess.ebiederm.org> (raw)
In-Reply-To: <9a1977a6526ca9e0b03ba1df767f842aea62b5f4.1296793770.git.lucian.grijincu@gmail.com> (Lucian Adrian Grijincu's message of "Fri, 4 Feb 2011 06:37:05 +0200")
Lucian Adrian Grijincu <lucian.grijincu@gmail.com> writes:
> The 'parent' field was added for selinux in:
> commit d912b0cc1a617d7c590d57b7ea971d50c7f02503
> [PATCH] sysctl: add a parent entry to ctl_table and set the parent entry
>
> and then was used for sysctl_check_table.
>
> Both of the users have found other implementations.
This seems reasonable but we need to be careful in how we merge this so
the individual trees are correct.
> CC: Eric W. Biederman <ebiederm@xmission.com>
> Signed-off-by: Lucian Adrian Grijincu <lucian.grijincu@gmail.com>
> ---
> include/linux/sysctl.h | 1 -
> kernel/sysctl.c | 11 -----------
> kernel/sysctl_check.c | 4 ++--
> 3 files changed, 2 insertions(+), 14 deletions(-)
>
> diff --git a/include/linux/sysctl.h b/include/linux/sysctl.h
> index 7bb5cb6..1f1da4b 100644
> --- a/include/linux/sysctl.h
> +++ b/include/linux/sysctl.h
> @@ -1018,7 +1018,6 @@ struct ctl_table
> int maxlen;
> mode_t mode;
> struct ctl_table *child;
> - struct ctl_table *parent; /* Automatically set */
> proc_handler *proc_handler; /* Callback for text formatting */
> void *extra1;
> void *extra2;
> diff --git a/kernel/sysctl.c b/kernel/sysctl.c
> index 56f6fc1..42025ec 100644
> --- a/kernel/sysctl.c
> +++ b/kernel/sysctl.c
> @@ -1695,18 +1695,8 @@ int sysctl_perm(struct ctl_table_root *root, struct ctl_table *table, int op)
> return test_perm(mode, op);
> }
>
> -static void sysctl_set_parent(struct ctl_table *parent, struct ctl_table *table)
> -{
> - for (; table->procname; table++) {
> - table->parent = parent;
> - if (table->child)
> - sysctl_set_parent(table, table->child);
> - }
> -}
> -
> static __init int sysctl_init(void)
> {
> - sysctl_set_parent(NULL, root_table);
> #ifdef CONFIG_SYSCTL_SYSCALL_CHECK
> sysctl_check_table(current->nsproxy, root_table);
> #endif
> @@ -1864,7 +1854,6 @@ struct ctl_table_header *__register_sysctl_paths(
> header->used = 0;
> header->unregistering = NULL;
> header->root = root;
> - sysctl_set_parent(NULL, header->ctl_table);
> header->count = 1;
> #ifdef CONFIG_SYSCTL_SYSCALL_CHECK
> if (sysctl_check_table(namespaces, header->ctl_table)) {
> diff --git a/kernel/sysctl_check.c b/kernel/sysctl_check.c
> index 9b4fecd..b7d9c66 100644
> --- a/kernel/sysctl_check.c
> +++ b/kernel/sysctl_check.c
> @@ -95,8 +95,8 @@ static int __sysctl_check_table(struct nsproxy *namespaces,
> for (; table->procname; table++) {
> const char *fail = NULL;
>
> - if (table->parent) {
> - if (table->procname && !table->parent->procname)
> + if (depth != 0) { /* has parent */
> + if (table->procname && !parents[depth - 1]->procname)
> SET_FAIL("Parent without procname");
> }
> if (!table->procname)
next prev parent reply other threads:[~2011-02-04 19:41 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-02-04 4:37 [PATCH 0/5] net: sysctl: share ipv4/ipv6 sysctl tables Lucian Adrian Grijincu
2011-02-04 4:37 ` Lucian Adrian Grijincu
2011-02-04 4:37 ` [PATCH 1/5] sysctl: faster reimplementation of sysctl_check_table Lucian Adrian Grijincu
2011-02-04 4:37 ` Lucian Adrian Grijincu
2011-02-04 19:40 ` Eric W. Biederman
2011-02-04 20:31 ` [PATCH 1/6] " Lucian Adrian Grijincu
2011-02-04 20:31 ` Lucian Adrian Grijincu
2011-02-04 21:11 ` Eric W. Biederman
2011-02-04 21:34 ` Lucian Adrian Grijincu
2011-02-04 21:34 ` Lucian Adrian Grijincu
2011-02-04 4:37 ` [PATCH 2/5] sysctl: remove useless ctl_table->parent field Lucian Adrian Grijincu
2011-02-04 4:37 ` Lucian Adrian Grijincu
2011-02-04 19:41 ` Eric W. Biederman [this message]
2011-02-04 4:37 ` [PATCH 3/5] sysctl: write ctl_table->extra2 to entries created from ctl_path Lucian Adrian Grijincu
2011-02-04 4:37 ` Lucian Adrian Grijincu
2011-02-04 4:37 ` [PATCH 4/5] ipv4: share sysctl net/ipv4/conf/DEVNAME/ tables Lucian Adrian Grijincu
2011-02-04 4:37 ` Lucian Adrian Grijincu
2011-02-05 21:16 ` Eric W. Biederman
2011-02-04 4:37 ` [PATCH 5/5] ipv6: share sysctl net/ipv6/conf/DEVNAME/ tables Lucian Adrian Grijincu
2011-02-04 4:37 ` Lucian Adrian Grijincu
2011-02-04 10:49 ` [PATCH 0/5] net: sysctl: share ipv4/ipv6 sysctl tables Alexey Dobriyan
2011-02-04 15:59 ` Lucian Adrian Grijincu
2011-02-05 14:26 ` Alexey Dobriyan
2011-02-05 14:59 ` Lucian Adrian Grijincu
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=m1fws3io4b.fsf@fess.ebiederm.org \
--to=ebiederm@xmission.com \
--cc=davem@davemloft.net \
--cc=eric.dumazet@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=lucian.grijincu@gmail.com \
--cc=netdev@vger.kernel.org \
--cc=opurdila@ixiacom.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.