Re: 3.7.10+: BUG Dentry still in use [unmount of cifs cifs]

From: Ben Greear
Date: Thu Mar 07 2013 - 17:18:26 EST


On 03/07/2013 11:19 AM, Mateusz Guzik wrote:
On Tue, Mar 05, 2013 at 10:54:56AM -0800, Ben Greear wrote:
In doing some CIFS testing (utilizing it's feature to bind to local
address..but not sure that matters), we saw this error when trying
to un-mount.

Our kernel is patched (nfs, some networking related patches), but there
are no out-of-kernel patches to CIFS, so I don't *think* this is anything
we could have caused.

This problem appears to be easily reproducible, so we will be happy
to test patches if anyone has any suggestions.

BUG: Dentry ffff8800c07e43c0{i=45762,n=cifs2-01.7.lf-data} still in use (1) [unmount of cifs cifs]

We encountered similar panic, but it was related to writes. In our case
the problem was that some cifsInodeInfo holding dentry references were
still around (in slow-work queue) during superblock destruction in unmount.

I reproduced the problem on 3.8 kernel (sorry, no 3.7 handy) with reads
as well, which should match your scenario.

I attached a patch that deals with this problem by grabbing refcounts to
cifs superblock on cifsInodeInfo creation. This delays sb destruction
until all cifsInodeInfos are gone. I didn't test it on 3.7.10 kernel but
it should work fine.

The 3.7.10 patch applied cleanly and appears to fix our problem.

Thanks so much for the patch!

Ben

--
Ben Greear <greearb@xxxxxxxxxxxxxxx>
Candela Technologies Inc http://www.candelatech.com

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/