From: Theodore Ts'o Date: Mon, 24 Mar 2008 12:17:24 +0000 (-0400) Subject: e2fsck: Don't object to extents flags on deleted fast symlinks X-Git-Tag: v1.41-WIP-0427~50 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=cb23cad5b750084212ca068a7212618e4b903730;p=thirdparty%2Fe2fsprogs.git e2fsck: Don't object to extents flags on deleted fast symlinks Thanks to Aneesh Kumar for pointing this out. Signed-off-by: "Theodore Ts'o" --- diff --git a/e2fsck/pass1.c b/e2fsck/pass1.c index 79e9f2345..67a837098 100644 --- a/e2fsck/pass1.c +++ b/e2fsck/pass1.c @@ -713,14 +713,6 @@ void e2fsck_pass1(e2fsck_t ctx) } } - if (extent_fs && (inode->i_flags & EXT4_EXTENTS_FL) && - LINUX_S_ISLNK(inode->i_mode) && - !ext2fs_inode_has_valid_blocks(inode) && - fix_problem(ctx, PR_1_FAST_SYMLINK_EXTENT_FL, &pctx)) { - inode->i_flags &= ~EXT4_EXTENTS_FL; - e2fsck_write_inode(ctx, ino, inode, "pass1"); - } - if (ino == EXT2_BAD_INO) { struct process_block_struct pb; @@ -925,6 +917,14 @@ void e2fsck_pass1(e2fsck_t ctx) check_inode_extra_space(ctx, &pctx); check_is_really_dir(ctx, &pctx, block_buf); + if (extent_fs && (inode->i_flags & EXT4_EXTENTS_FL) && + LINUX_S_ISLNK(inode->i_mode) && + !ext2fs_inode_has_valid_blocks(inode) && + fix_problem(ctx, PR_1_FAST_SYMLINK_EXTENT_FL, &pctx)) { + inode->i_flags &= ~EXT4_EXTENTS_FL; + e2fsck_write_inode(ctx, ino, inode, "pass1"); + } + if (LINUX_S_ISDIR(inode->i_mode)) { ext2fs_mark_inode_bitmap(ctx->inode_dir_map, ino); e2fsck_add_dir_info(ctx, ino, 0);