Skip to contentSkip to conversation

: md: Initialize ctl_name field of table raid_root_table/raid_dir_table to avoid dump_trace info in debug kernel

PATCH Eric W. Biederman 3 participants 3 messages Mar 14, 2012 – Mar 19, 2012 2 messages not in the archive MD RAID

lore
Share & tools
lore

A message that is not in the archive (sent off-list or not yet received): [email protected]

A message that is not in the archive (sent off-list or not yet received): [email protected]

#2 lore raw
Quoted 49 lines · NeilBrown
Quoted 13 lines · On Mon, 12 Mar 2012 11:58:53 +0800 qing gu <[email protected]> wrote:

This patch is used to dispense trace info when system boots with debug kernel. I have verified it on RHEL6.2 & SLES11.2. Both work fine. In the failure case, system logs that:

    /Feb 21 19:33:55 nsgbj-216-137 kernel: sysctl_check_dir: failed: /dev  ref: /dev .7
    Feb 21 19:33:55 nsgbj-216-137 kernel: sysctl table check failed: /dev  Inconsistent directory names
    Feb 21 19:33:55 nsgbj-216-137 kernel: Pid: 1, comm: swapper Not tainted 2.6.32-220.el6.x86_64.debug #1
    Feb 21 19:33:55 nsgbj-216-137 kernel: Call Trace:
    Feb 21 19:33:55 nsgbj-216-137 kernel: [<ffffffff810a2029>] ? set_fail+0x59/0x60
    Feb 21 19:33:55 nsgbj-216-137 kernel: [<ffffffff810a23d4>] ? sysctl_check_table+0x3a4/0x680
    ...
    /
Quoted 6 lines

As you can see, system failed with mismatch
/sysctl_check_dir: failed: /dev ref: /dev .7/

-----------------------------------------------------------

(please put patches inline in your email - it makes them easier to reply to)

 scripts/kconfig/Makefile |   16 ++++++++++++++++
  1 file changed, 16 insertions(+)
drivers/md/md.c +2 -0
index ce88755..9630ad3 100644
@@ -129,6 +129,7 @@ static ctl_table raid_table[] = {
 
 static ctl_table raid_dir_table[] = {
 	{
+		.ctl_name	= DEV_RAID,
 		.procname	= "raid",
 		.maxlen		= 0,
 		.mode		= S_IRUGO|S_IXUGO,
@@ -139,6 +140,7 @@ static ctl_table raid_dir_table[] = {
 
 static ctl_table raid_root_table[] = {
 	{
+		.ctl_name	= CTL_DEV,
 		.procname	= "dev",
 		.maxlen		= 0,
 		.mode		= 0555,
Quoted 6 lines

These lines were removed in November 2009 by Eric Biederman in commit 894d2491153a9f8270dbed21175d06fde4eba6c7

So I'm not keen on adding them back without understanding the history.

Eric: Do we need these after all?

For the main trunk no. The .ctl_name field no longer exists.

kernel/binary_sysctl.c is used to provide backwards compatibility with the old binary names.

There might be a point for doing something in -stable or someone's enterprise kernel if some messed up set of backports were merged.

Eric

#3 lore raw
Quoted 9 lines · On Tue, 13 Mar 2012 19:14:05 -0700 [email protected] (Eric W. Biederman)…
Quoted 7 lines · NeilBrown
Quoted 5 lines · On Mon, 12 Mar 2012 11:58:53 +0800 qing gu <[email protected]> wrote:

This patch is used to dispense trace info when system boots with debug kernel. I have verified it on RHEL6.2 & SLES11.2. Both work fine. In the failure case, system logs that:

    /Feb 21 19:33:55 nsgbj-216-137 kernel: sysctl_check_dir: failed: /dev  ref: /dev .7

.....

Quoted 9 lines
Quoted 6 lines

These lines were removed in November 2009 by Eric Biederman in commit 894d2491153a9f8270dbed21175d06fde4eba6c7

So I'm not keen on adding them back without understanding the history.

Eric: Do we need these after all?

For the main trunk no. The .ctl_name field no longer exists.

Quoted 7 lines

kernel/binary_sysctl.c is used to provide backwards compatibility with the old binary names.

There might be a point for doing something in -stable or someone's enterprise kernel if some messed up set of backports were merged.

Eric

Thanks for the quick response Eric!!

Qing: It looks like this is not an issue in mainline.
If you want to get something fixed in SLES or RHEL, I suggest you log an issue in the relevant bugzillas (though I just checked SLES11-SP2, and it doesn't mention sysctl_check_dir at all).

NeilBrown

#4 lore raw

Very thanks for the reply.

Neil

Quoted 37 lines · NeilBrown
Quoted 9 lines · On Tue, 13 Mar 2012 19:14:05 -0700 [email protected] (Eric W. Biederman)…
Quoted 7 lines · NeilBrown
Quoted 5 lines · On Mon, 12 Mar 2012 11:58:53 +0800 qing gu<[email protected]> wrote:

This patch is used to dispense trace info when system boots with debug kernel. I have verified it on RHEL6.2& SLES11.2. Both work fine. In the failure case, system logs that:

     /Feb 21 19:33:55 nsgbj-216-137 kernel: sysctl_check_dir: failed: /dev  ref: /dev .7

.....

Quoted 8 lines
Quoted 6 lines

These lines were removed in November 2009 by Eric Biederman in commit 894d2491153a9f8270dbed21175d06fde4eba6c7

So I'm not keen on adding them back without understanding the history.

Eric: Do we need these after all?

For the main trunk no. The .ctl_name field no longer exists.

Quoted 7 lines

kernel/binary_sysctl.c is used to provide backwards compatibility with the old binary names.

There might be a point for doing something in -stable or someone's enterprise kernel if some messed up set of backports were merged.

Eric

Thanks for the quick response Eric!!

Qing: It looks like this is not an issue in mainline.
If you want to get something fixed in SLES or RHEL, I suggest you log an issue in the relevant bugzillas (though I just checked SLES11-SP2, and it doesn't mention sysctl_check_dir at all).

NeilBrown