From: Steve Dickson <SteveD@redhat.com>
To: Linux NFS Mailing list <linux-nfs@vger.kernel.org>
Subject: lookup_one_len() returning d_count == 0
Date: Sat, 28 Mar 2009 09:55:37 -0400 [thread overview]
Message-ID: <49CE2C59.7040102@RedHat.com> (raw)
In some recent work I'm doing, I am seeing something very
strange when using an OpenSolaris client which does a
NFS v4 mount. Here is the scenario
On the server, the exports look like:
/fs1 <world>(rw,wdelay,root_squash,no_subtree_check)
/fs1/fs2/fs3/fs4/fs5
<world>(rw,wdelay,nohide,root_squash,no_subtree_check)
With all the fs? directories being a file system which in turn makes them a
mount point.
The client is doing:
mount server:/fs1 /mnt/tmp
ls /mnt/tmp/fs2/fs3
Which does only returns the fs4 dir as it should.
Now when the client does:
ls /mnt/tmp/fs2/fs3/fs4
On the server:
nfsd_lookup_dentry() calls lookup_one_len() like it always does
but this time the dentry that's return (for fs4) has a d_count == 0
which cause the first dget() to blow up...
Anybody have any ideas as to why lookup_one_len() would be
returning a (supposedly valid) dentry with a d_count == 0?
Is giving out dentrys with a d_count == 0 a valid thing to do?
steved.
P.S. here is what the oops looks like:
kernel BUG at include/linux/dcache.h:334!
invalid opcode: 0000 [#1] SMP
last sysfs file: /sys/module/nfsd/initstate
Modules linked in: nfsd lockd nfs_acl auth_rpcgss exportfs bridge stp llc bnep sco l2cap bluetooth autofs4 sunrpc ipv6 p4_clockmod uinput ppdev snd_intel8x0 snd_ac97_codec ac97_bus snd_seq_dummy snd_seq_oss snd_seq_midi_event snd_seq snd_seq_device snd_pcm_oss snd_mixer_oss snd_pcm snd_timer snd soundcore pcspkr snd_page_alloc i2c_i801 firewire_ohci firewire_core iTCO_wdt iTCO_vendor_support crc_itu_t intel_rng e1000 parport_pc parport ata_generic pata_acpi radeon drm i2c_algo_bit i2c_core [last unloaded: nfsd]
Pid: 3554, comm: nfsd Tainted: G W (2.6.29-15.fc10.i686.PAE #1)
EIP: 0060:[<f9336917>] EFLAGS: 00010246 CPU: 1
EIP is at nfsd_lookup_dentry+0x259/0x344 [nfsd]
EAX: 00000000 EBX: f6cbaea0 ECX: f6cbaea0 EDX: f2892800
ESI: 00010000 EDI: f290f08c EBP: f1095e1c ESP: f1095df4
DS: 007b ES: 007b FS: 00d8 GS: 0000 SS: 0068
Process nfsd (pid: 3554, ti=f1094000 task=f154d500 task.ti=f1094000)
Stack:
f1126120 00014405 00000000 f2892800 00000046 f6cbaea0 f15f73c0 f1095f30
f10f65a8 f1095f2c f1095f40 f933de34 00000003 f1095f30 f1095f2c f1126120
00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
Call Trace:
[<f933de34>] ? nfsd4_secinfo+0x49/0xa0 [nfsd]
[<f933efc2>] ? nfsd4_encode_operation+0x57/0x69 [nfsd]
[<f933e07c>] ? nfsd4_proc_compound+0x19c/0x2bc [nfsd]
[<f933ddeb>] ? nfsd4_secinfo+0x0/0xa0 [nfsd]
[<f9331227>] ? nfsd_dispatch+0xd4/0x1a7 [nfsd]
[<f8eca07a>] ? svc_process+0x37e/0x58c [sunrpc]
[<f933177c>] ? nfsd+0x11e/0x170 [nfsd]
[<f933165e>] ? nfsd+0x0/0x170 [nfsd]
[<c044bbac>] ? kthread+0x40/0x66
[<c044bb6c>] ? kthread+0x0/0x66
[<c040a03f>] ? kernel_thread_helper+0x7/0x10
Code: 0f 84 88 00 00 00 8b 4d ec 8b 55 f0 8b 41 3c 3b 42 20 75 7a 8b 52 1c 85 d2 74 07 8d 42 68 f0 ff 42 68 89 55 e4 8b 01 85 c0 75 04 <0f> 0b eb fe f0 ff 01 89 4d e8 8d 7d e8 8d 5d e4 89 fa 89 d8 e8
EIP: [<f9336917>] nfsd_lookup_dentry+0x259/0x344 [nfsd] SS:ESP 0068:f1095df4
next reply other threads:[~2009-03-28 13:58 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-03-28 13:55 Steve Dickson [this message]
[not found] ` <49CE2C59.7040102-AfCzQyP5zfLQT0dZR+AlfA@public.gmane.org>
2009-03-28 17:31 ` lookup_one_len() returning d_count == 0 Trond Myklebust
[not found] ` <1238261492.6679.9.camel-rJ7iovZKK19ZJLDQqaL3InhyD016LWXt@public.gmane.org>
2009-03-31 19:40 ` Steve Dickson
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=49CE2C59.7040102@RedHat.com \
--to=steved@redhat.com \
--cc=linux-nfs@vger.kernel.org \
/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.