2006-11-01 08:02:06

by bibo,mao

[permalink] [raw]
Subject: [BUG] 2.6.19-rc3 autofs crash on my IA64 box

hi,
2.6.19-rc3 kernel crashes on my IA64 box, it seems the problem
of autofs fs. I debug this problem, if autofs kernel does not
match daemon version, it will call autofs_catatonic_mode.
But at that time sbi->pipe is NULL.

void autofs_catatonic_mode(struct autofs_sb_info *sbi)
{
.........
fput(sbi->pipe); /* Close the pipe */
^^^^^^^^^^^^
sbi->pipe seems NULL;
autofs_hash_dputall(&sbi->dirhash); /* Remove all dentry pointers */
}


Starting automount: autofs: kernel does not match daemon version
Unable to handle kernel NULL pointer dereference (address 0000000000000028)
automount[3197]: Oops 8821862825984 [1]
Modules linked in: sunrpc binfmt_misc dm_mirror dm_mod thermal processor fan cod

Pid: 3188, CPU 1, comm: automount
psr : 00001010085a6010 ifs : 8000000000000205 ip : [<a00000010012bde0>] Notd
ip is at fput+0x20/0x60
unat: 0000000000000000 pfs : 000000000000038b rsc : 0000000000000003
rnat: 00000000000000a0 bsps: 000000000001003e pr : 40a80004065625a9
ldrs: 0000000000000000 ccv : 0000000000000000 fpsr: 0009804c0270033f
csd : 0000000000000000 ssd : 0000000000000000
b0 : a0000001001f4d00 b6 : a0000001001f2600 b7 : a000000100155c00
f6 : 1003e0000000000000000 f7 : 1003e00000000000000a0
f8 : 1003e0000000000000001 f9 : 1003e0000000000000001
f10 : 000000000000000000000 f11 : 000000000000000000000
r1 : a0000001009e6e10 r2 : 0000000000000028 r3 : e0000001f881c008
r8 : 0000000000000001 r9 : 0000000040000000 r10 : ffffffffc0000001
r11 : 0000000000000018 r12 : e0000001fab4fbe0 r13 : e0000001fab48000
r14 : 0000000000000001 r15 : 0000000000000038 r16 : e0000001f881c030
r17 : 00000000ffffffff r18 : e0000002fffa0f88 r19 : 0000000000000001
r20 : e0000001fab48b64 r21 : a0007fffff1971b0 r22 : e0000002fff95198
r23 : e0000002fff95188 r24 : 0000000000000001 r25 : 0000000000000000
r26 : 0000000000000009 r27 : 0000000000000000 r28 : a018000000000000
r29 : 8000000000000080 r30 : 0000000000000000 r31 : a0000001007fb2cc

Call Trace:
[<a000000100013b80>] show_stack+0x40/0xa0
sp=e0000001fab4f770 bsp=e0000001fab48fa0
[<a0000001000147e0>] show_regs+0x840/0x880
sp=e0000001fab4f940 bsp=e0000001fab48f48
[<a0000001000369e0>] die+0x1c0/0x2c0
sp=e0000001fab4f940 bsp=e0000001fab48f00
[<a0000001005734f0>] ia64_do_page_fault+0x930/0xa60
sp=e0000001fab4f960 bsp=e0000001fab48eb0
[<a00000010000c3a0>] ia64_leave_kernel+0x0/0x280
sp=e0000001fab4fa10 bsp=e0000001fab48eb0
[<a00000010012bde0>] fput+0x20/0x60
sp=e0000001fab4fbe0 bsp=e0000001fab48e88
[<a0000001001f4d00>] autofs_catatonic_mode+0xe0/0x120
sp=e0000001fab4fbe0 bsp=e0000001fab48e50
[<a0000001001f2640>] autofs_kill_sb+0x40/0x140
sp=e0000001fab4fbe0 bsp=e0000001fab48e20
[<a00000010012dc50>] deactivate_super+0xd0/0x120
sp=e0000001fab4fbe0 bsp=e0000001fab48de8
[<a00000010012f500>] get_sb_nodev+0xe0/0x160
sp=e0000001fab4fbe0 bsp=e0000001fab48da0
[<a0000001001f1b60>] autofs_get_sb+0x40/0x60
sp=e0000001fab4fbe0 bsp=e0000001fab48d60
[<a00000010012dd40>] vfs_kern_mount+0xa0/0x160
sp=e0000001fab4fbe0 bsp=e0000001fab48d18
[<a00000010012dec0>] do_kern_mount+0x60/0xa0
sp=e0000001fab4fbe0 bsp=e0000001fab48cd8
[<a00000010015ebc0>] do_mount+0xce0/0xde0
sp=e0000001fab4fbe0 bsp=e0000001fab48c80
[<a00000010015edb0>] sys_mount+0xf0/0x1c0
sp=e0000001fab4fe10 bsp=e0000001fab48be8
[<a00000010000c200>] ia64_ret_from_syscall+0x0/0x20
sp=e0000001fab4fe30 bsp=e0000001fab48be8
[<a000000000010620>] __kernel_syscall_via_break+0x0/0x20
sp=e0000001fab50000 bsp=e0000001fab48be8


2006-11-02 09:52:24

by Yasunori Goto

[permalink] [raw]
Subject: Re: [BUG] 2.6.19-rc3 autofs crash on my IA64 box

Hello.

> hi,
> 2.6.19-rc3 kernel crashes on my IA64 box, it seems the problem
> of autofs fs. I debug this problem, if autofs kernel does not
> match daemon version, it will call autofs_catatonic_mode.
> But at that time sbi->pipe is NULL.
>
> void autofs_catatonic_mode(struct autofs_sb_info *sbi)
> {
> .........
> fput(sbi->pipe); /* Close the pipe */
> ^^^^^^^^^^^^
> sbi->pipe seems NULL;
> autofs_hash_dputall(&sbi->dirhash); /* Remove all dentry pointers */
> }
>

My box crashed too.

Following fix does not seem enough.
http://marc.theaimsgroup.com/?l=linux-kernel&m=116110204104327&w=2
If version does not match at autofs_fill_super(), then sbi->pipe
is not set yet.
I suppose something like following patch is necessary.

Thanks.

-------------
Index: stocktest/fs/autofs/waitq.c
===================================================================
--- stocktest.orig/fs/autofs/waitq.c 2006-03-10 11:36:40.000000000 +0900
+++ stocktest/fs/autofs/waitq.c 2006-11-02 18:44:58.000000000 +0900
@@ -40,7 +40,8 @@ void autofs_catatonic_mode(struct autofs
wake_up(&wq->queue);
wq = nwq;
}
- fput(sbi->pipe); /* Close the pipe */
+ if (sbi->pipe)
+ fput(sbi->pipe); /* Close the pipe */
autofs_hash_dputall(&sbi->dirhash); /* Remove all dentry pointers */
}


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

>
> Starting automount: autofs: kernel does not match daemon version
> Unable to handle kernel NULL pointer dereference (address 0000000000000028)
> automount[3197]: Oops 8821862825984 [1]
> Modules linked in: sunrpc binfmt_misc dm_mirror dm_mod thermal processor fan cod
>
> Pid: 3188, CPU 1, comm: automount
> psr : 00001010085a6010 ifs : 8000000000000205 ip : [<a00000010012bde0>] Notd
> ip is at fput+0x20/0x60
> unat: 0000000000000000 pfs : 000000000000038b rsc : 0000000000000003
> rnat: 00000000000000a0 bsps: 000000000001003e pr : 40a80004065625a9
> ldrs: 0000000000000000 ccv : 0000000000000000 fpsr: 0009804c0270033f
> csd : 0000000000000000 ssd : 0000000000000000
> b0 : a0000001001f4d00 b6 : a0000001001f2600 b7 : a000000100155c00
> f6 : 1003e0000000000000000 f7 : 1003e00000000000000a0
> f8 : 1003e0000000000000001 f9 : 1003e0000000000000001
> f10 : 000000000000000000000 f11 : 000000000000000000000
> r1 : a0000001009e6e10 r2 : 0000000000000028 r3 : e0000001f881c008
> r8 : 0000000000000001 r9 : 0000000040000000 r10 : ffffffffc0000001
> r11 : 0000000000000018 r12 : e0000001fab4fbe0 r13 : e0000001fab48000
> r14 : 0000000000000001 r15 : 0000000000000038 r16 : e0000001f881c030
> r17 : 00000000ffffffff r18 : e0000002fffa0f88 r19 : 0000000000000001
> r20 : e0000001fab48b64 r21 : a0007fffff1971b0 r22 : e0000002fff95198
> r23 : e0000002fff95188 r24 : 0000000000000001 r25 : 0000000000000000
> r26 : 0000000000000009 r27 : 0000000000000000 r28 : a018000000000000
> r29 : 8000000000000080 r30 : 0000000000000000 r31 : a0000001007fb2cc
>
> Call Trace:
> [<a000000100013b80>] show_stack+0x40/0xa0
> sp=e0000001fab4f770 bsp=e0000001fab48fa0
> [<a0000001000147e0>] show_regs+0x840/0x880
> sp=e0000001fab4f940 bsp=e0000001fab48f48
> [<a0000001000369e0>] die+0x1c0/0x2c0
> sp=e0000001fab4f940 bsp=e0000001fab48f00
> [<a0000001005734f0>] ia64_do_page_fault+0x930/0xa60
> sp=e0000001fab4f960 bsp=e0000001fab48eb0
> [<a00000010000c3a0>] ia64_leave_kernel+0x0/0x280
> sp=e0000001fab4fa10 bsp=e0000001fab48eb0
> [<a00000010012bde0>] fput+0x20/0x60
> sp=e0000001fab4fbe0 bsp=e0000001fab48e88
> [<a0000001001f4d00>] autofs_catatonic_mode+0xe0/0x120
> sp=e0000001fab4fbe0 bsp=e0000001fab48e50
> [<a0000001001f2640>] autofs_kill_sb+0x40/0x140
> sp=e0000001fab4fbe0 bsp=e0000001fab48e20
> [<a00000010012dc50>] deactivate_super+0xd0/0x120
> sp=e0000001fab4fbe0 bsp=e0000001fab48de8
> [<a00000010012f500>] get_sb_nodev+0xe0/0x160
> sp=e0000001fab4fbe0 bsp=e0000001fab48da0
> [<a0000001001f1b60>] autofs_get_sb+0x40/0x60
> sp=e0000001fab4fbe0 bsp=e0000001fab48d60
> [<a00000010012dd40>] vfs_kern_mount+0xa0/0x160
> sp=e0000001fab4fbe0 bsp=e0000001fab48d18
> [<a00000010012dec0>] do_kern_mount+0x60/0xa0
> sp=e0000001fab4fbe0 bsp=e0000001fab48cd8
> [<a00000010015ebc0>] do_mount+0xce0/0xde0
> sp=e0000001fab4fbe0 bsp=e0000001fab48c80
> [<a00000010015edb0>] sys_mount+0xf0/0x1c0
> sp=e0000001fab4fe10 bsp=e0000001fab48be8
> [<a00000010000c200>] ia64_ret_from_syscall+0x0/0x20
> sp=e0000001fab4fe30 bsp=e0000001fab48be8
> [<a000000000010620>] __kernel_syscall_via_break+0x0/0x20
> sp=e0000001fab50000 bsp=e0000001fab48be8
> -
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/

--
Yasunori Goto


2006-11-02 10:21:47

by Ian Kent

[permalink] [raw]
Subject: Re: [BUG] 2.6.19-rc3 autofs crash on my IA64 box

On Thu, 2006-11-02 at 18:51 +0900, Yasunori Goto wrote:
> Hello.
>
> > hi,
> > 2.6.19-rc3 kernel crashes on my IA64 box, it seems the problem
> > of autofs fs. I debug this problem, if autofs kernel does not
> > match daemon version, it will call autofs_catatonic_mode.
> > But at that time sbi->pipe is NULL.
> >
> > void autofs_catatonic_mode(struct autofs_sb_info *sbi)
> > {
> > .........
> > fput(sbi->pipe); /* Close the pipe */
> > ^^^^^^^^^^^^
> > sbi->pipe seems NULL;
> > autofs_hash_dputall(&sbi->dirhash); /* Remove all dentry pointers */
> > }
> >
>
> My box crashed too.
>
> Following fix does not seem enough.
> http://marc.theaimsgroup.com/?l=linux-kernel&m=116110204104327&w=2

I'm not surprised it addresses a completely different problem.

> If version does not match at autofs_fill_super(), then sbi->pipe
> is not set yet.
> I suppose something like following patch is necessary.

At least but I'll need to check a bit further into this and the autofs4
module should be updated in a similar manner. Even though it will
support the latest requested version it should still handle this error
case.

Ian


2006-11-03 08:21:21

by Ian Kent

[permalink] [raw]
Subject: Re: [BUG] 2.6.19-rc3 autofs crash on my IA64 box

On Thu, 2 Nov 2006, Yasunori Goto wrote:

> Hello.
>
> > hi,
> > 2.6.19-rc3 kernel crashes on my IA64 box, it seems the problem
> > of autofs fs. I debug this problem, if autofs kernel does not
> > match daemon version, it will call autofs_catatonic_mode.
> > But at that time sbi->pipe is NULL.
> >
> > void autofs_catatonic_mode(struct autofs_sb_info *sbi)
> > {
> > .........
> > fput(sbi->pipe); /* Close the pipe */
> > ^^^^^^^^^^^^
> > sbi->pipe seems NULL;
> > autofs_hash_dputall(&sbi->dirhash); /* Remove all dentry pointers */
> > }
> >
>
> My box crashed too.
>
> Following fix does not seem enough.
> http://marc.theaimsgroup.com/?l=linux-kernel&m=116110204104327&w=2
> If version does not match at autofs_fill_super(), then sbi->pipe
> is not set yet.
> I suppose something like following patch is necessary.
>
> Thanks.
>
> -------------
> Index: stocktest/fs/autofs/waitq.c
> ===================================================================
> --- stocktest.orig/fs/autofs/waitq.c 2006-03-10 11:36:40.000000000 +0900
> +++ stocktest/fs/autofs/waitq.c 2006-11-02 18:44:58.000000000 +0900
> @@ -40,7 +40,8 @@ void autofs_catatonic_mode(struct autofs
> wake_up(&wq->queue);
> wq = nwq;
> }
> - fput(sbi->pipe); /* Close the pipe */
> + if (sbi->pipe)
> + fput(sbi->pipe); /* Close the pipe */
> autofs_hash_dputall(&sbi->dirhash); /* Remove all dentry pointers */
> }

I've checked this and this is not the only problem.
Also autofs4_ is called with s->s_root NULL in this case.

The attached patch ensures that the autofs filesystem is initialized to be
catatonic until super block setup is complete which avoids the problem
above. It also checks s->s_root before use.

Could someone seeing this problem try this patch out please.

Ian

---
--- linux-2.6.19-rc4-mm2/fs/autofs4/waitq.c.mount-fail-panic 2006-11-03 15:35:01.000000000 +0800
+++ linux-2.6.19-rc4-mm2/fs/autofs4/waitq.c 2006-11-03 15:35:22.000000000 +0800
@@ -41,10 +41,8 @@ void autofs4_catatonic_mode(struct autof
wake_up_interruptible(&wq->queue);
wq = nwq;
}
- if (sbi->pipe) {
- fput(sbi->pipe); /* Close the pipe */
- sbi->pipe = NULL;
- }
+ fput(sbi->pipe); /* Close the pipe */
+ sbi->pipe = NULL;
}

static int autofs4_write(struct file *file, const void *addr, int bytes)
--- linux-2.6.19-rc4-mm2/fs/autofs4/inode.c.mount-fail-panic 2006-11-03 14:42:46.000000000 +0800
+++ linux-2.6.19-rc4-mm2/fs/autofs4/inode.c 2006-11-03 15:20:55.000000000 +0800
@@ -99,6 +99,9 @@ static void autofs4_force_release(struct
struct dentry *this_parent = sbi->sb->s_root;
struct list_head *next;

+ if (!sbi->sb->s_root)
+ return;
+
spin_lock(&dcache_lock);
repeat:
next = this_parent->d_subdirs.next;
@@ -310,7 +313,8 @@ int autofs4_fill_super(struct super_bloc
s->s_fs_info = sbi;
sbi->magic = AUTOFS_SBI_MAGIC;
sbi->pipefd = -1;
- sbi->catatonic = 0;
+ sbi->pipe = NULL;
+ sbi->catatonic = 1;
sbi->exp_timeout = 0;
sbi->oz_pgrp = process_group(current);
sbi->sb = s;
@@ -388,6 +392,7 @@ int autofs4_fill_super(struct super_bloc
goto fail_fput;
sbi->pipe = pipe;
sbi->pipefd = pipefd;
+ sbi->catatonic = 0;

/*
* Success! Install the root dentry now to indicate completion.
--- linux-2.6.19-rc4-mm2/fs/autofs/waitq.c.mount-fail-panic 2006-11-03 15:36:11.000000000 +0800
+++ linux-2.6.19-rc4-mm2/fs/autofs/waitq.c 2006-11-03 15:37:04.000000000 +0800
@@ -41,6 +41,7 @@ void autofs_catatonic_mode(struct autofs
wq = nwq;
}
fput(sbi->pipe); /* Close the pipe */
+ sbi->pipe = NULL;
autofs_hash_dputall(&sbi->dirhash); /* Remove all dentry pointers */
}

--- linux-2.6.19-rc4-mm2/fs/autofs/inode.c.mount-fail-panic 2006-11-03 14:40:56.000000000 +0800
+++ linux-2.6.19-rc4-mm2/fs/autofs/inode.c 2006-11-03 15:24:01.000000000 +0800
@@ -136,7 +136,8 @@ int autofs_fill_super(struct super_block

s->s_fs_info = sbi;
sbi->magic = AUTOFS_SBI_MAGIC;
- sbi->catatonic = 0;
+ sbi->pipe = NULL;
+ sbi->catatonic = 1;
sbi->exp_timeout = 0;
sbi->oz_pgrp = process_group(current);
autofs_initialize_hash(&sbi->dirhash);
@@ -180,6 +181,7 @@ int autofs_fill_super(struct super_block
if ( !pipe->f_op || !pipe->f_op->write )
goto fail_fput;
sbi->pipe = pipe;
+ sbi->catatonic = 0;

/*
* Success! Install the root dentry now to indicate completion.

2006-11-03 08:24:33

by Ian Kent

[permalink] [raw]
Subject: Re: [BUG] 2.6.19-rc3 autofs crash on my IA64 box

On Fri, 3 Nov 2006, Ian Kent wrote:

> On Thu, 2 Nov 2006, Yasunori Goto wrote:
>
> > Hello.
> >
> > > hi,
> > > 2.6.19-rc3 kernel crashes on my IA64 box, it seems the problem
> > > of autofs fs. I debug this problem, if autofs kernel does not
> > > match daemon version, it will call autofs_catatonic_mode.
> > > But at that time sbi->pipe is NULL.
> > >
> > > void autofs_catatonic_mode(struct autofs_sb_info *sbi)
> > > {
> > > .........
> > > fput(sbi->pipe); /* Close the pipe */
> > > ^^^^^^^^^^^^
> > > sbi->pipe seems NULL;
> > > autofs_hash_dputall(&sbi->dirhash); /* Remove all dentry pointers */
> > > }
> > >
> >
> > My box crashed too.
> >
> > Following fix does not seem enough.
> > http://marc.theaimsgroup.com/?l=linux-kernel&m=116110204104327&w=2
> > If version does not match at autofs_fill_super(), then sbi->pipe
> > is not set yet.
> > I suppose something like following patch is necessary.
> >
> > Thanks.
> >
> > -------------
> > Index: stocktest/fs/autofs/waitq.c
> > ===================================================================
> > --- stocktest.orig/fs/autofs/waitq.c 2006-03-10 11:36:40.000000000 +0900
> > +++ stocktest/fs/autofs/waitq.c 2006-11-02 18:44:58.000000000 +0900
> > @@ -40,7 +40,8 @@ void autofs_catatonic_mode(struct autofs
> > wake_up(&wq->queue);
> > wq = nwq;
> > }
> > - fput(sbi->pipe); /* Close the pipe */
> > + if (sbi->pipe)
> > + fput(sbi->pipe); /* Close the pipe */
> > autofs_hash_dputall(&sbi->dirhash); /* Remove all dentry pointers */
> > }
>
> I've checked this and this is not the only problem.
> Also autofs4_ is called with s->s_root NULL in this case.

Oops, that autofs4_ should be autofs4_force_release

>
> The attached patch ensures that the autofs filesystem is initialized to be
> catatonic until super block setup is complete which avoids the problem
> above. It also checks s->s_root before use.
>
> Could someone seeing this problem try this patch out please.
>
> Ian
>
> ---
> --- linux-2.6.19-rc4-mm2/fs/autofs4/waitq.c.mount-fail-panic 2006-11-03 15:35:01.000000000 +0800
> +++ linux-2.6.19-rc4-mm2/fs/autofs4/waitq.c 2006-11-03 15:35:22.000000000 +0800
> @@ -41,10 +41,8 @@ void autofs4_catatonic_mode(struct autof
> wake_up_interruptible(&wq->queue);
> wq = nwq;
> }
> - if (sbi->pipe) {
> - fput(sbi->pipe); /* Close the pipe */
> - sbi->pipe = NULL;
> - }
> + fput(sbi->pipe); /* Close the pipe */
> + sbi->pipe = NULL;
> }
>
> static int autofs4_write(struct file *file, const void *addr, int bytes)
> --- linux-2.6.19-rc4-mm2/fs/autofs4/inode.c.mount-fail-panic 2006-11-03 14:42:46.000000000 +0800
> +++ linux-2.6.19-rc4-mm2/fs/autofs4/inode.c 2006-11-03 15:20:55.000000000 +0800
> @@ -99,6 +99,9 @@ static void autofs4_force_release(struct
> struct dentry *this_parent = sbi->sb->s_root;
> struct list_head *next;
>
> + if (!sbi->sb->s_root)
> + return;
> +
> spin_lock(&dcache_lock);
> repeat:
> next = this_parent->d_subdirs.next;
> @@ -310,7 +313,8 @@ int autofs4_fill_super(struct super_bloc
> s->s_fs_info = sbi;
> sbi->magic = AUTOFS_SBI_MAGIC;
> sbi->pipefd = -1;
> - sbi->catatonic = 0;
> + sbi->pipe = NULL;
> + sbi->catatonic = 1;
> sbi->exp_timeout = 0;
> sbi->oz_pgrp = process_group(current);
> sbi->sb = s;
> @@ -388,6 +392,7 @@ int autofs4_fill_super(struct super_bloc
> goto fail_fput;
> sbi->pipe = pipe;
> sbi->pipefd = pipefd;
> + sbi->catatonic = 0;
>
> /*
> * Success! Install the root dentry now to indicate completion.
> --- linux-2.6.19-rc4-mm2/fs/autofs/waitq.c.mount-fail-panic 2006-11-03 15:36:11.000000000 +0800
> +++ linux-2.6.19-rc4-mm2/fs/autofs/waitq.c 2006-11-03 15:37:04.000000000 +0800
> @@ -41,6 +41,7 @@ void autofs_catatonic_mode(struct autofs
> wq = nwq;
> }
> fput(sbi->pipe); /* Close the pipe */
> + sbi->pipe = NULL;
> autofs_hash_dputall(&sbi->dirhash); /* Remove all dentry pointers */
> }
>
> --- linux-2.6.19-rc4-mm2/fs/autofs/inode.c.mount-fail-panic 2006-11-03 14:40:56.000000000 +0800
> +++ linux-2.6.19-rc4-mm2/fs/autofs/inode.c 2006-11-03 15:24:01.000000000 +0800
> @@ -136,7 +136,8 @@ int autofs_fill_super(struct super_block
>
> s->s_fs_info = sbi;
> sbi->magic = AUTOFS_SBI_MAGIC;
> - sbi->catatonic = 0;
> + sbi->pipe = NULL;
> + sbi->catatonic = 1;
> sbi->exp_timeout = 0;
> sbi->oz_pgrp = process_group(current);
> autofs_initialize_hash(&sbi->dirhash);
> @@ -180,6 +181,7 @@ int autofs_fill_super(struct super_block
> if ( !pipe->f_op || !pipe->f_op->write )
> goto fail_fput;
> sbi->pipe = pipe;
> + sbi->catatonic = 0;
>
> /*
> * Success! Install the root dentry now to indicate completion.
> -
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/
>

2006-11-06 12:48:20

by Yasunori Goto

[permalink] [raw]
Subject: Re: [BUG] 2.6.19-rc3 autofs crash on my IA64 box

Hi.

> I've checked this and this is not the only problem.
> Also autofs4_ is called with s->s_root NULL in this case.
>
> The attached patch ensures that the autofs filesystem is initialized to be
> catatonic until super block setup is complete which avoids the problem
> above. It also checks s->s_root before use.
>
> Could someone seeing this problem try this patch out please.

Sorry for late response. I was off.
I tested your patch on my box. It worked well.

Thanks a lot. :-)



--
Yasunori Goto


2006-11-06 13:09:04

by Ian Kent

[permalink] [raw]
Subject: Re: [BUG] 2.6.19-rc3 autofs crash on my IA64 box

On Mon, 2006-11-06 at 21:47 +0900, Yasunori Goto wrote:
> Hi.
>
> > I've checked this and this is not the only problem.
> > Also autofs4_ is called with s->s_root NULL in this case.
> >
> > The attached patch ensures that the autofs filesystem is initialized to be
> > catatonic until super block setup is complete which avoids the problem
> > above. It also checks s->s_root before use.
> >
> > Could someone seeing this problem try this patch out please.
>
> Sorry for late response. I was off.
> I tested your patch on my box. It worked well.

Thanks.

Unfortunately, I've got a couple of other problems.

In my testing I managed to panic the kernel further on, somewhere in
selinux. The scenario is slightly different though, running autofs
version 5 against a version 4 module. I really can't see why, all the
references look OK. I'm not sure what can be done it either as we're
talking about an older kernel anyway.

My other problem is I can't get my -mm kernel to build atm so I can't
really test further. I'm sure that will change soon.

Ian