summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTheodore Ts'o <tytso@mit.edu>2005-01-23 16:49:56 -0500
committerTheodore Ts'o <tytso@mit.edu>2005-01-23 16:49:56 -0500
commit2d096010069cc7caae16ce21357668c53fe8e1c5 (patch)
tree238460b8495b37e27c68eb143c89904711ed9c41
parent02f61b88741ade4fbddf5f59994915a09ce95539 (diff)
downloade2fsprogs-2d096010069cc7caae16ce21357668c53fe8e1c5.tar.gz
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.
-rw-r--r--e2fsck/ChangeLog6
-rw-r--r--e2fsck/super.c3
2 files changed, 9 insertions, 0 deletions
diff --git a/e2fsck/ChangeLog b/e2fsck/ChangeLog
index f9ffac99..332f0c13 100644
--- a/e2fsck/ChangeLog
+++ b/e2fsck/ChangeLog
@@ -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
diff --git a/e2fsck/super.c b/e2fsck/super.c
index 2dff3b3e..2e9e6a8c 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;