If a file is marked inline_data but its i_size isn't a multiple of four, it probably isn't an inline directory, because directory entries have sizes that are multiples of four. v2: Don't add unnecessary variables. Signed-off-by: Darrick J. Wong <darrick.wong@xxxxxxxxxx> --- e2fsck/pass1.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/e2fsck/pass1.c b/e2fsck/pass1.c index ce373f3..8cff18d 100644 --- a/e2fsck/pass1.c +++ b/e2fsck/pass1.c @@ -540,6 +540,12 @@ static void check_is_really_dir(e2fsck_t ctx, struct problem_context *pctx, if (ext2fs_inline_data_size(ctx->fs, pctx->ino, &size)) return; + /* + * If the size isn't a multiple of 4, it's probably not a + * directory?? + */ + if (size & 3) + return; /* device files never have a "system.data" entry */ goto isdir; } else if (extent_fs && (inode->i_flags & EXT4_EXTENTS_FL)) { -- 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