From 2d096010069cc7caae16ce21357668c53fe8e1c5 Mon Sep 17 00:00:00 2001 From: Theodore Ts'o Date: Sun, 23 Jan 2005 16:49:56 -0500 Subject: [PATCH] Fix e2fsck so that it does not complain if the resize_inode feature is 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 | 6 ++++++ e2fsck/super.c | 3 +++ 2 files changed, 9 insertions(+) diff --git a/e2fsck/ChangeLog b/e2fsck/ChangeLog index f9ffac9..332f0c1 100644 --- a/e2fsck/ChangeLog +++ b/e2fsck/ChangeLog @@ -1,3 +1,9 @@ +2005-01-21 Theodore Ts'o + + * 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 * unix.c (e2fsck_simple_progress): Use fixed integer math diff --git a/e2fsck/super.c b/e2fsck/super.c index 2dff3b3..2e9e6a8 100644 --- a/e2fsck/super.c +++ b/e2fsck/super.c @@ -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; -- 1.8.3.1