nfsd oops 2.6.7-rc1
Subsystems (2)
While idle, the following oops happened. On virgin 2.6.7-rc1.
-- wli
------------[ cut here ]------------
kernel BUG at include/linux/dcache.h:276!
invalid operand: 0000 [#1]
Modules linked in:
CPU: 0
EIP: 0060:[<c01e1de1>] Not tainted
EFLAGS: 00010246 (2.6.7-rc1-holomorphy-1)
EIP is at fh_compose+0x3d1/0x430
eax: 00000000 ebx: 00800070 ecx: effe8d14 edx: 00000020
esi: e29bf800 edi: 00000000 ebp: ddc24f58 esp: e29b3eb0
ds: 007b es: 007b ss: 0068
Process nfsd (pid: 1335, threadinfo=e29b3000 task=e29c0410)
Stack: 00000000 edd2444c c014b66f e29b3ed4 e432c0c0 8191bdfa ddc24b4c ddc24b4c
eca73d0c 0100bdfa effe8d14 0000001a ddc24f58 ddc24f58 e29ce000 e432c0a6
c01e247b e29ce000 00000001 effe7314 c0419bee ddc24b4c e2a23000 effe8d14
Call Trace:
[<c014b66f>] __lookup_hash+0x5f/0xb0
[<c01e247b>] nfsd_lookup+0x12b/0x420
[<c0419bee>] svcauth_unix_accept+0x23e/0x280
[<c01e0513>] nfsd_proc_lookup+0x53/0xa0
[<c01e82c4>] nfssvc_decode_diropargs+0x54/0xb0
[<c01e8270>] nfssvc_decode_diropargs+0x0/0xb0
[<c01dfb36>] nfsd_dispatch+0xb6/0x1c0
[<c0416523>] svc_process+0x463/0x5c0
[<c01df92f>] nfsd+0x16f/0x2c0
[<c01df7c0>] nfsd+0x0/0x2c0
[<c0103a7d>] kernel_thread_helper+0x5/0x18
Code: 0f 0b 14 01 ba 29 44 c0 e9 99 fd ff ff 8b 45 18 8b 4c 24 1c Quoted 2 lines · On Friday May 28, [email protected] wrote:
While idle, the following oops happened. On virgin 2.6.7-rc1.
Ok, I think I've found it. There is a missing dget. See below/. NeilBrown
=====================================================
Another missing dget
The recentish change to fh_compose not consuming a reference to the passed dentries missed this needed dget.
----------- Diffstat output ------------
./fs/nfsd/vfs.c | 2 +- 1 files changed, 1 insertion(+), 1 deletion(-)
fs/nfsd/vfs.c renamed from fs/nfsd/vfs.c~current~ +1 -1
@@ -899,7 +899,7 @@ nfsd_create(struct svc_rqst *rqstp, stru goto out; }else {/* called from nfsd_proc_create */ - dchild = resfhp->fh_dentry; + dchild =dget (resfhp->fh_dentry);if (!fhp->fh_locked) {/* not actually possible */ printk(KERN_ERR
Quoted 2 lines · On Friday May 28, [email protected] wrote:
Quoted 2 lines
While idle, the following oops happened. On virgin 2.6.7-rc1.
Quoted 2 lines · Neil Brown
Ok, I think I've found it. There is a missing dget. See below/. NeilBrown
Thanks! Testing ETA 10-15 minutes (time needed for kernel compiles).
-- wli
Quoted 2 lines · Neil Brown
Quoted 2 lines
Ok, I think I've found it. There is a missing dget. See below/. NeilBrown
Quoted 1 line · William Lee Irwin III
Thanks! Testing ETA 10-15 minutes (time needed for kernel compiles).
No oopsen for 30 minutes so it's working wonderfully thus far, but I've seen things go wrong a number of hours out from boot before. I'll try to follow up with another ack after it's been longer.
-- wli