Re: circular locking dependency detected panic in filldir whenCONFIG_PROVE_LOCKING=y

From: Trond Myklebust
Date: Fri Sep 18 2009 - 17:39:21 EST


On Fri, 2009-09-18 at 17:15 -0400, Joe Korty wrote:
> I experienced a might_fault panic from NFS's use of filldir
> in a 2.6.31 kernel compiled with CONFIG_PROVE_LOCKING=y.
>
> Looking at filldir, I see it is accessing user space with
> __put_dir's (which are inatomic) and with one copy_to_user
> (which is not inatomic). It is the single copy_to_user
> which is causing the might_fault panic.
>
> It doesn't make any sense to be mixing use of inatomic
> and non-inatomic services in filldir. Either all should be
> the inatomic version, or none should be.
>
> The might_fault condition being reported by the panic looks
> real to me, so I suspect the wrong answer is converting
> everything to the inatomic version, since that just
> suppresses the circular dependency check while leaving
> the circular dependency in place.

Yes. This is known... Please see
http://thread.gmane.org/gmane.linux.nfs/28578
and
http://thread.gmane.org/gmane.linux.nfs/27406

I'm still hoping the VM folks can see fit to merge Peter's fix at some
point...

Cheers
Trond

--
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/