On 10/03/2012 10:58 AM, Theodore Ts'o wrote:
To clarify, the EXT2_FEATURE_INCOMPAT_FILETYPE flag indicates that there _may_ be file type information in the directory entry (and so only the low 8 bits of name_len should be considered part of the name length), but it does not guarantee that it will be present in the high 8 bits of name_len. If it is not there, then readdir will simply return DT_UNKNOWN in the d_type field of the directory entry returned by readdir(2). This is something all application programs have to be prepared to deal with --- if they need the file type information, and they get DT_UNKNOWN, then they will need to stat the file to get the information. - Ted
In this case, dir_iterate_proc() is being passed into ext2_dir_iterate2() and is called from ext2fs_process_dir_block(), not readdir(2). It looks like the main issue would be detecting if the EXT2_FEATURE_INCOMPAT_FILETYPE flag is -unset- and manually setting the file type to EXT2_FT_UNKNOWN (there appears to be a case for handling EXT2_FT_UNKNOWN; so long as the file type is not set to an undefined value it should be okay). Thank you for the clarification. Regards, Wade -- To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html
