[linux-cifs-client] kernel BUG at fs/dcache.c:670

Jeff Layton jlayton at redhat.com
Sun Feb 21 08:53:58 MST 2010


On Sun, 21 Feb 2010 20:57:09 +0530
Suresh Jayaraman <sjayaraman at suse.de> wrote:

> On 02/18/2010 01:10 AM, Jeff Layton wrote:
> > On Wed, 17 Feb 2010 15:45:05 +0530
> > Suresh Jayaraman <sjayaraman at suse.de> wrote:
> > 
> >> On 02/04/2010 11:48 PM, Jeff Layton wrote:
> >>> On Thu, 04 Feb 2010 19:07:26 +0100
> >>> Miha Verlic <miha at krneki.org> wrote:
> >>>
> >>>> Hello,
> >>>>
> >>>> after upgrading to 2.6.32.x kernel, I've soon encountered the bug in the
> >>>> attachment. After some testing I noticed it happens from 2.6.31.7 and
> >>>> 2.6.32 onwards.
> >>>>
> >>>> Since I can reproduce it quite easily, I've bisected the bug down to
> >>>> these two commits:
> >>>>
> >>>> http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=ec06aedd44541129840ed52e6165afa3796a27bf
> >>>> http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=f534dc994397560343be4a3223b9bbaa8e739e1f
> >>>>
> >>>> To reproduce the bug all I have to do is mount some cifs shares, read
> >>>> some data off the remove share and unmount the volume (no files are in
> >>>> use when I unmount the share). Interestingly enough, it only happens
> >>>> with one of the 5 shares I regulary mount.
> >>>>
> >>>> --
> >>>> Miha
> >>>
> >>> cc'ing Steve French too...
> >>>
> >>> Interesting. Does the problem go away if you mount that share with '-o
> >>> noserverino'? 
> >>>
> >>> That may be an side effect of this bug:
> >>>
> >>> http://bugzilla.kernel.org/show_bug.cgi?id=15088
> >>>
> >>
> >> Jeff,
> >>
> >> I haven't had a look at your recent cache invalidation bug fixing
> >> patches. Wondering whether that patch set addresses this kernel BUG too?
> >>
> >>
> >> Thanks,
> > 
> > Not sure, but it's certainly worth testing to see if it does. This
> > commit in particular:
> > 
> > http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=f12f98dba6ea1517cd7fbb912208893b9c014c15
> > 
> 
> I got this patch tested but didn't help. It resulted in similar BUG when
> 'noserverino' mount option is not used.
> 
> 

The oops has this info:

[ 2589.444430] BUG: Dentry f04fcf00{i=2,n=/} still in use (1) [unmount of cifs cifs]

So the problem is the root inode, and it has i_ino of 2. That makes me
wonder whether the problem might be in how we're autodisabling
serverino.

When we find a server that doesn't support server inode numbers
properly, we stop trying to get them. But...what of the inodes that
we've already instantiated that are using server inode numbers?

Do we end up with more than one copy of the same inode, but with
different uniqueid's? If so, maybe that's throwing off the refcount on
one of the inodes.

Do you have a reproducer for this problem? You also mentioned that you
don't see it on all of your cifs mounts. What sort of server are you
seeing this against?

It probably won't help, but it might not hurt to test this patch too:

http://git.samba.org/?p=jlayton/cifs.git;a=commitdiff;h=314db603b4c83e0f30eb31c82cb32dc48a834d55

...cifs_lookup does some funny stuff with the dcache...

-- 
Jeff Layton <jlayton at redhat.com>


More information about the linux-cifs-client mailing list