Whamcloud - gitweb
e2fsck: Don't object to extents flags on deleted fast symlinks
authorTheodore Ts'o <tytso@mit.edu>
Mon, 24 Mar 2008 12:17:24 +0000 (08:17 -0400)
committerTheodore Ts'o <tytso@mit.edu>
Mon, 24 Mar 2008 12:17:24 +0000 (08:17 -0400)
Thanks to Aneesh Kumar for pointing this out.

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
e2fsck/pass1.c

index 79e9f23..67a8370 100644 (file)
@@ -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);