On Fri, May 01, 2015 at 12:23:33PM +1000, NeilBrown wrote: > > What kind of consistency warranties do callers expect, BTW? You do realize > > that between iterate_dir() and callbacks an entry might have been removed > > and/or replaced? > > For READDIR_PLUS, lookup_one_len is called on each name and it requires > i_mutex, so the code currently holds i_mutex over the whole sequence. > This is triggering a deadlock. Yes, I've seen the context. However, you are _not_ holding it between actual iterate_dir() and those callbacks, which opens a window when directory might have been changed. Again, what kind of consistency is expected by callers? Are they ready to cope with "there's no such entry anymore" or "inumber is nothing like what we'd put in ->ino, since it's no the same object" or "->d_type is completely unrelated to what we'd found, since the damn thing had been removed and created from scratch"? -- To unsubscribe from this list: send the line "unsubscribe linux-nfs" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html