In message <1256152779-10054-14-git-send-email-vaurora@xxxxxxxxxx>, Valerie Aurora writes: > From: Jan Blunck <jblunck@xxxxxxx> > > Add support for whiteout dentries to tmpfs. Shouldn't you CC Hugh Dickins here? He's probably best positioned to review the changes in mm/shmem.c. > XXX - Not sure this is the right patch to put the code for supporting > whiteouts in d_genocide(). > > Signed-off-by: Jan Blunck <jblunck@xxxxxxx> > Signed-off-by: David Woodhouse <dwmw2@xxxxxxxxxxxxx> > Signed-off-by: Valerie Aurora <vaurora@xxxxxxxxxx> > --- > fs/dcache.c | 3 +- > mm/shmem.c | 149 +++++++++++++++++++++++++++++++++++++++++++++++++++++------ > 2 files changed, 137 insertions(+), 15 deletions(-) > > diff --git a/fs/dcache.c b/fs/dcache.c > index 0fcae4b..1fae1df 100644 > --- a/fs/dcache.c > +++ b/fs/dcache.c > @@ -2280,7 +2280,8 @@ resume: > struct list_head *tmp = next; > struct dentry *dentry = list_entry(tmp, struct dentry, d_u.d_child); > next = tmp->next; > - if (d_unhashed(dentry)||!dentry->d_inode) > + if (d_unhashed(dentry)||(!dentry->d_inode && > + !d_is_whiteout(dentry))) I think this d_genocide patch should go elsewhere. What does it have to do with tmpfs? Also, is your logic above correct? If I understood d_genocide correctly, then the code you changed attempts to skip over dentries for which d_genocide has no work to do, like unhashed and negative dentries. So I assume it should also skip over whiteout dentries. Your condition is if (d_unhashed(dentry) || (!dentry->d_inode && !d_is_whiteout(dentry))) but perhaps it needs to be if (d_unhashed(dentry) || !dentry->d_inode || d_is_whiteout(dentry)) No? Either way, you may want to document any complex conditional that may be confusing to parse. > continue; > if (!list_empty(&dentry->d_subdirs)) { > this_parent = dentry; > diff --git a/mm/shmem.c b/mm/shmem.c > index d713239..2faa14b 100644 > --- a/mm/shmem.c > +++ b/mm/shmem.c [mm/shmem.c changes snipped] Erez. -- 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