]> git.ipfire.org Git - thirdparty/e2fsprogs.git/commitdiff
Fix e2fsck so that it does not complain if the resize_inode feature is
authorTheodore Ts'o <tytso@mit.edu>
Sun, 23 Jan 2005 21:49:56 +0000 (16:49 -0500)
committerTheodore Ts'o <tytso@mit.edu>
Sun, 23 Jan 2005 21:49:56 +0000 (16:49 -0500)
enabled, but s_reserved_gdt_blocks is zero and there is no double indirect
block in the resize inode.  If there are no blocks reserved for on-line
expansion, there is no need for the DIND block to be allocated in the resize
inode.

e2fsck/ChangeLog
e2fsck/super.c

index f9ffac996c6f99a630e63b8c73123a7acc27c6e5..332f0c134df6629e71c02885ffdca98d3e45f41b 100644 (file)
@@ -1,3 +1,9 @@
+2005-01-21  Theodore Ts'o  <tytso@mit.edu>
+
+       * super.c (check_resize_inode): If resize feature is set, but
+               s_reserved_gdt_blocks is zero, do not insist that resize
+               inode must have double indirect block.
+
 2005-01-19  Theodore Ts'o  <tytso@mit.edu>
 
        * unix.c (e2fsck_simple_progress): Use fixed integer math
index 2dff3b3e8b2103a5a4f22fbc3390da5004ccd6fe..2e9e6a8cded23749412ad2f7142ebbf234de2f52 100644 (file)
@@ -368,6 +368,9 @@ void check_resize_inode(e2fsck_t ctx)
         * only block in use is the double indirect block
         */
        blk = inode.i_block[EXT2_DIND_BLOCK];
+       if (!blk && !fs->super->s_reserved_gdt_blocks)
+               /* No reserved gdt blocks; no need for dind block */
+               return;
        for (i=0; i < EXT2_N_BLOCKS; i++) {
                if (i != EXT2_DIND_BLOCK && inode.i_block[i])
                        break;