From: Tao Ma Date: Fri, 19 Apr 2013 21:53:09 +0000 (-0400) Subject: ext4: fix readdir error in the case of inline_data+dir_index X-Git-Tag: omap-for-v3.10/dt-fixes-for-merge-window~83^2~9 X-Git-Url: http://git.openpandora.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=8af0f08227977079f8f227e74d27c59db2ab84f6;p=pandora-kernel.git ext4: fix readdir error in the case of inline_data+dir_index 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 theory, 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. Reported-by: Zach Brown Signed-off-by: Tao Ma Signed-off-by: "Theodore Ts'o" --- Reading git-diff-tree failed