On Wed, Apr 10, 2013 at 11:37:07PM +0800, Tao Ma wrote: > From: Tao Ma <boyu.mt@xxxxxxxxxx> > > Zach reported a problem that if inline data is enabled, we don't > tell the difference between the offset of '.' and '..'. And a > getdents will fail if the user only want to get '.' and what's worse, > if there is a conversion happens when the user calls getdents > many times, he/she may get the same entry twice. > > In theroy, a dir block would also fail if it is converted to a > hashed-index based dir since f_pos will become a hash value, not the > real one, but it doesn't happen. And a deep investigation > shows that we uses a hash based solution even for a normal dir if > the dir_index feature is enabled. > > So this patch just adds a new htree_inlinedir_to_tree for inline dir, > and if we find that the hash index is supported, we will do like what > we do for a dir block. Mmm, I like the sound of that fix. Nice and simple. The little test app that was seeing duplicate entries now sees stable f_pos values and no dupes after the patch. So I think this works. Thanks for fixing this. - z -- To unsubscribe from this list: send the line "unsubscribe linux-ext4" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html