2009/7/20 Peter Zijlstra <a.p.zijlstra@xxxxxxxxx> > > On Mon, 2009-07-20 at 04:12 -0400, Frederic Weisbecker wrote: > > > Hm, I can read that in fs/dcache.c:512 > > > > /* dentry->d_lock was dropped in prune_one_dentry() */ > > cond_resched_lock(&dcache_lock); > > dentry->d_lock != dcache_lock > > > Isn't it a mususe of cond_resched_lock() ? > > In this case, dcache.c should be fixed. > > Both sites look good wrt locking. So there's something else fishy. > (Resend in text/plain, sorry.) Ah, I think I've got it. In case of !CONFIG_PREEMPT, the spinlocks of course don't play with preemption, making no change reflected in the preempt_count(). The assumption of preempt_count() = 1 is then false. I prepare a patch. Thanks. -- To unsubscribe from this list: send the line "unsubscribe linux-tip-commits" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html