On Wed, 2014-04-23 at 14:46 -0700, Andrew Morton wrote: > On Wed, 23 Apr 2014 13:20:36 +0800 Ian Kent <raven@xxxxxxxxxx> wrote: > > > autofs needs to be able to see private data dentry flags for > > its dentrys that are being created but not yet hashed and for > > its dentys that have been rmdir()ed but not yet freed. It > > needs to do this so it can block processes in these states > > until a status has been returned to indicate the given > > operation is complete. > > > > It does this by keeping two lists, active and expring, of > > dentrys in this state and uses ->d_release() to keep them > > stable while it checks the reference count to determine > > if they should be used. > > > > But with the recent lockref changes dentrys being freed > > sometimes don't transition to a reference count of 0 before > > being freed so autofs can occassionally use a dentry that > > is invalid which can lead to a panic. > > What's the value of "recent"? I assume 3.14 is OK? I'll need to look again but from memory it's broken from 3.12 onward. The breakage happened when lockref_mark_dead() was introduced because it sets lockref->count = -128 instead of reducing count by one as was done previously. Ian -- To unsubscribe from this list: send the line "unsubscribe autofs" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html