"Bharata B Rao" <bharata.rao@xxxxxxxxx> wrote: > > > OT, I'm a bit curious about this: > > > > list_del_init(tmp); > > spin_lock(&dentry->d_lock); > > if (atomic_read(&dentry->d_count)) { > > spin_unlock(&dentry->d_lock); > > continue; > > } > > > > So we rip the dentry off dcache_unused and just leave it floating about? > > Dipankar, do you remember why that change was made, and why it's not a bug? > > Due to lazy updating of the LRU list, there can be some dentries with non-zero > ref counts on LRU list. This is one of the places where such dentries are > removed from the LRU list. (Basically such dentries will be both on > hash list and LRU > list and here they get removed from the LRU list) OK. But what guarantees that these live-but-detached dentries are appropriately destroyed before the unmount completes? Or... if these dentries will be freed by RCU callbacks potentially after the unmount, are we sure that they will always be in a state which will permit them to be freed? - To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html