Blame SOURCES/e2fsprogs-1.44.6-e2fsck-check-and-fix-tails-of-all-bitmap-blocks.patch

0ab26d
From 6e44ff6678a96b2bc5ddc42c5bf2cbad09b71af2 Mon Sep 17 00:00:00 2001
0ab26d
From: Theodore Ts'o <tytso@mit.edu>
0ab26d
Date: Sun, 5 May 2019 16:43:33 -0400
0ab26d
Subject: [PATCH 3/4] e2fsck: check and fix tails of all bitmap blocks
0ab26d
0ab26d
Currently, e2fsck effectively checks only tail of the last inode and
0ab26d
block bitmap in the filesystem. Thus if some previous bitmap has unset
0ab26d
bits it goes unnoticed.  Mostly these tail bits in the bitmap are
0ab26d
ignored; however, if blocks_per_group are smaller than 8*blocksize,
0ab26d
the multi-block allocator in the kernel can get confused when the tail
0ab26d
bits are unset and return bogus free extent.
0ab26d
0ab26d
Add support to libext2fs to check these bitmap tails when loading
0ab26d
bitmaps (as that's about the only place which has access to the bitmap
0ab26d
tail bits) and make e2fsck use this functionality to detect buggy bitmap
0ab26d
tails and fix them (by rewriting the bitmaps).
0ab26d
0ab26d
Reported-by: Jan Kara <jack@suse.cz>
0ab26d
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
0ab26d
Reviewed-by: Jan Kara <jack@suse.cz>
0ab26d
---
0ab26d
 e2fsck/pass5.c                                | 40 ++++++++++++++++---
0ab26d
 lib/ext2fs/ext2fs.h                           |  2 +
0ab26d
 lib/ext2fs/rw_bitmaps.c                       | 26 +++++++++++-
0ab26d
 tests/f_bitmaps/expect.1                      |  2 +
0ab26d
 tests/f_dup/expect.1                          |  2 +
0ab26d
 tests/f_dup2/expect.1                         |  2 +
0ab26d
 tests/f_dup3/expect.1                         |  2 +
0ab26d
 tests/f_end-bitmap/expect.1                   |  2 +
0ab26d
 tests/f_illbbitmap/expect.1                   |  2 +
0ab26d
 tests/f_illibitmap/expect.1                   |  2 +
0ab26d
 tests/f_illitable_flexbg/expect.1             |  2 +
0ab26d
 tests/f_lpf/expect.1                          |  2 +
0ab26d
 tests/f_overfsblks/expect.1                   |  2 +
0ab26d
 tests/f_super_bad_csum/expect.1               |  4 +-
0ab26d
 tests/j_corrupt_ext_jnl_sb_csum/expect        |  2 +
0ab26d
 tests/j_ext_long_trans/expect                 |  2 +
0ab26d
 tests/j_long_trans/expect                     |  2 +
0ab26d
 tests/j_long_trans_mcsum_32bit/expect         |  2 +
0ab26d
 tests/j_long_trans_mcsum_64bit/expect         |  2 +
0ab26d
 tests/j_recover_csum2_32bit/expect.1          |  2 +
0ab26d
 tests/j_recover_csum2_64bit/expect.1          |  2 +
0ab26d
 tests/j_short_trans/expect                    |  2 +
0ab26d
 tests/j_short_trans_64bit/expect              |  2 +
0ab26d
 tests/j_short_trans_mcsum_64bit/expect        |  2 +
0ab26d
 tests/j_short_trans_old_csum/expect           |  2 +
0ab26d
 tests/j_short_trans_open_recover/expect       |  2 +
0ab26d
 tests/j_short_trans_recover/expect            |  2 +
0ab26d
 .../j_short_trans_recover_mcsum_64bit/expect  |  2 +
0ab26d
 tests/t_replay_and_set/expect                 |  2 +
0ab26d
 29 files changed, 113 insertions(+), 9 deletions(-)
0ab26d
0ab26d
diff --git a/e2fsck/pass5.c b/e2fsck/pass5.c
0ab26d
index 7803e8b8..81009097 100644
0ab26d
--- a/e2fsck/pass5.c
0ab26d
+++ b/e2fsck/pass5.c
0ab26d
@@ -838,6 +838,7 @@ static void check_inode_end(e2fsck_t ctx)
0ab26d
 	ext2_filsys fs = ctx->fs;
0ab26d
 	ext2_ino_t	end, save_inodes_count, i;
0ab26d
 	struct problem_context	pctx;
0ab26d
+	int asked = 0;
0ab26d
 
0ab26d
 	clear_problem_context(&pctx);
0ab26d
 
0ab26d
@@ -851,11 +852,12 @@ static void check_inode_end(e2fsck_t ctx)
0ab26d
 		return;
0ab26d
 	}
0ab26d
 	if (save_inodes_count == end)
0ab26d
-		return;
0ab26d
+		goto check_intra_bg_tail;
0ab26d
 
0ab26d
 	/* protect loop from wrap-around if end is maxed */
0ab26d
 	for (i = save_inodes_count + 1; i <= end && i > save_inodes_count; i++) {
0ab26d
 		if (!ext2fs_test_inode_bitmap(fs->inode_map, i)) {
0ab26d
+			asked = 1;
0ab26d
 			if (fix_problem(ctx, PR_5_INODE_BMAP_PADDING, &pctx)) {
0ab26d
 				for (; i <= end; i++)
0ab26d
 					ext2fs_mark_inode_bitmap(fs->inode_map,
0ab26d
@@ -875,6 +877,20 @@ static void check_inode_end(e2fsck_t ctx)
0ab26d
 		ctx->flags |= E2F_FLAG_ABORT; /* fatal */
0ab26d
 		return;
0ab26d
 	}
0ab26d
+	/*
0ab26d
+	 * If the number of inodes per block group != blocksize, we
0ab26d
+	 * can also have a potential problem with the tail bits in
0ab26d
+	 * each individual inode bitmap block.  If there is a problem,
0ab26d
+	 * it would have been noticed when the bitmap was loaded.  And
0ab26d
+	 * fixing this is easy; all we need to do force the bitmap to
0ab26d
+	 * be written back to disk.
0ab26d
+	 */
0ab26d
+check_intra_bg_tail:
0ab26d
+	if (!asked && fs->flags & EXT2_FLAG_IBITMAP_TAIL_PROBLEM)
0ab26d
+		if (fix_problem(ctx, PR_5_INODE_BMAP_PADDING, &pctx))
0ab26d
+			ext2fs_mark_ib_dirty(fs);
0ab26d
+		else
0ab26d
+			ext2fs_unmark_valid(fs);
0ab26d
 }
0ab26d
 
0ab26d
 static void check_block_end(e2fsck_t ctx)
0ab26d
@@ -882,6 +898,7 @@ static void check_block_end(e2fsck_t ctx)
0ab26d
 	ext2_filsys fs = ctx->fs;
0ab26d
 	blk64_t	end, save_blocks_count, i;
0ab26d
 	struct problem_context	pctx;
0ab26d
+	int asked = 0;
0ab26d
 
0ab26d
 	clear_problem_context(&pctx);
0ab26d
 
0ab26d
@@ -896,12 +913,13 @@ static void check_block_end(e2fsck_t ctx)
0ab26d
 		return;
0ab26d
 	}
0ab26d
 	if (save_blocks_count == end)
0ab26d
-		return;
0ab26d
+		goto check_intra_bg_tail;
0ab26d
 
0ab26d
 	/* Protect loop from wrap-around if end is maxed */
0ab26d
 	for (i = save_blocks_count + 1; i <= end && i > save_blocks_count; i++) {
0ab26d
 		if (!ext2fs_test_block_bitmap2(fs->block_map,
0ab26d
 					       EXT2FS_C2B(fs, i))) {
0ab26d
+			asked = 1;
0ab26d
 			if (fix_problem(ctx, PR_5_BLOCK_BMAP_PADDING, &pctx)) {
0ab26d
 				for (; i <= end; i++)
0ab26d
 					ext2fs_mark_block_bitmap2(fs->block_map,
0ab26d
@@ -921,7 +939,19 @@ static void check_block_end(e2fsck_t ctx)
0ab26d
 		ctx->flags |= E2F_FLAG_ABORT; /* fatal */
0ab26d
 		return;
0ab26d
 	}
0ab26d
+	/*
0ab26d
+	 * If the number of blocks per block group != blocksize, we
0ab26d
+	 * can also have a potential problem with the tail bits in
0ab26d
+	 * each individual block bitmap block.  If there is a problem,
0ab26d
+	 * it would have been noticed when the bitmap was loaded.  And
0ab26d
+	 * fixing this is easy; all we need to do force the bitmap to
0ab26d
+	 * be written back to disk.
0ab26d
+	 */
0ab26d
+check_intra_bg_tail:
0ab26d
+	if (!asked && fs->flags & EXT2_FLAG_BBITMAP_TAIL_PROBLEM) {
0ab26d
+		if (fix_problem(ctx, PR_5_BLOCK_BMAP_PADDING, &pctx))
0ab26d
+			ext2fs_mark_bb_dirty(fs);
0ab26d
+		else
0ab26d
+			ext2fs_unmark_valid(fs);
0ab26d
+	}
0ab26d
 }
0ab26d
-
0ab26d
-
0ab26d
-
0ab26d
diff --git a/lib/ext2fs/ext2fs.h b/lib/ext2fs/ext2fs.h
0ab26d
index 96735c8e..285eb5e1 100644
0ab26d
--- a/lib/ext2fs/ext2fs.h
0ab26d
+++ b/lib/ext2fs/ext2fs.h
0ab26d
@@ -199,6 +199,8 @@ typedef struct ext2_file *ext2_file_t;
0ab26d
 #define EXT2_FLAG_IGNORE_CSUM_ERRORS	0x200000
0ab26d
 #define EXT2_FLAG_SHARE_DUP		0x400000
0ab26d
 #define EXT2_FLAG_IGNORE_SB_ERRORS	0x800000
0ab26d
+#define EXT2_FLAG_BBITMAP_TAIL_PROBLEM	0x1000000
0ab26d
+#define EXT2_FLAG_IBITMAP_TAIL_PROBLEM	0x2000000
0ab26d
 
0ab26d
 /*
0ab26d
  * Special flag in the ext2 inode i_flag field that means that this is
0ab26d
diff --git a/lib/ext2fs/rw_bitmaps.c b/lib/ext2fs/rw_bitmaps.c
0ab26d
index e86bacd5..f1c4188b 100644
0ab26d
--- a/lib/ext2fs/rw_bitmaps.c
0ab26d
+++ b/lib/ext2fs/rw_bitmaps.c
0ab26d
@@ -195,6 +195,16 @@ static errcode_t mark_uninit_bg_group_blocks(ext2_filsys fs)
0ab26d
 	return 0;
0ab26d
 }
0ab26d
 
0ab26d
+static int bitmap_tail_verify(unsigned char *bitmap, int first, int last)
0ab26d
+{
0ab26d
+	int i;
0ab26d
+
0ab26d
+	for (i = first; i <= last; i++)
0ab26d
+		if (bitmap[i] != 0xff)
0ab26d
+			return 0;
0ab26d
+	return 1;
0ab26d
+}
0ab26d
+
0ab26d
 static errcode_t read_bitmaps(ext2_filsys fs, int do_inode, int do_block)
0ab26d
 {
0ab26d
 	dgrp_t i;
0ab26d
@@ -203,6 +213,7 @@ static errcode_t read_bitmaps(ext2_filsys fs, int do_inode, int do_block)
0ab26d
 	errcode_t retval;
0ab26d
 	int block_nbytes = EXT2_CLUSTERS_PER_GROUP(fs->super) / 8;
0ab26d
 	int inode_nbytes = EXT2_INODES_PER_GROUP(fs->super) / 8;
0ab26d
+	int tail_flags = 0;
0ab26d
 	int csum_flag;
0ab26d
 	unsigned int	cnt;
0ab26d
 	blk64_t	blk;
0ab26d
@@ -315,6 +326,9 @@ static errcode_t read_bitmaps(ext2_filsys fs, int do_inode, int do_block)
0ab26d
 					EXT2_ET_BLOCK_BITMAP_CSUM_INVALID;
0ab26d
 					goto cleanup;
0ab26d
 				}
0ab26d
+				if (!bitmap_tail_verify((unsigned char *) block_bitmap,
0ab26d
+							block_nbytes, fs->blocksize - 1))
0ab26d
+					tail_flags |= EXT2_FLAG_BBITMAP_TAIL_PROBLEM;
0ab26d
 			} else
0ab26d
 				memset(block_bitmap, 0, block_nbytes);
0ab26d
 			cnt = block_nbytes << 3;
0ab26d
@@ -347,6 +361,9 @@ static errcode_t read_bitmaps(ext2_filsys fs, int do_inode, int do_block)
0ab26d
 					EXT2_ET_INODE_BITMAP_CSUM_INVALID;
0ab26d
 					goto cleanup;
0ab26d
 				}
0ab26d
+				if (!bitmap_tail_verify((unsigned char *) inode_bitmap,
0ab26d
+							inode_nbytes, fs->blocksize - 1))
0ab26d
+					tail_flags |= EXT2_FLAG_IBITMAP_TAIL_PROBLEM;
0ab26d
 			} else
0ab26d
 				memset(inode_bitmap, 0, inode_nbytes);
0ab26d
 			cnt = inode_nbytes << 3;
0ab26d
@@ -366,10 +383,15 @@ static errcode_t read_bitmaps(ext2_filsys fs, int do_inode, int do_block)
0ab26d
 	}
0ab26d
 
0ab26d
 success_cleanup:
0ab26d
-	if (inode_bitmap)
0ab26d
+	if (inode_bitmap) {
0ab26d
 		ext2fs_free_mem(&inode_bitmap);
0ab26d
-	if (block_bitmap)
0ab26d
+		fs->flags &= ~EXT2_FLAG_IBITMAP_TAIL_PROBLEM;
0ab26d
+	}
0ab26d
+	if (block_bitmap) {
0ab26d
 		ext2fs_free_mem(&block_bitmap);
0ab26d
+		fs->flags &= ~EXT2_FLAG_BBITMAP_TAIL_PROBLEM;
0ab26d
+	}
0ab26d
+	fs->flags |= tail_flags;
0ab26d
 	return 0;
0ab26d
 
0ab26d
 cleanup:
0ab26d
diff --git a/tests/f_bitmaps/expect.1 b/tests/f_bitmaps/expect.1
0ab26d
index 715984d4..2e91113d 100644
0ab26d
--- a/tests/f_bitmaps/expect.1
0ab26d
+++ b/tests/f_bitmaps/expect.1
0ab26d
@@ -11,6 +11,8 @@ Fix? yes
0ab26d
 Inode bitmap differences:  +11 -15
0ab26d
 Fix? yes
0ab26d
 
0ab26d
+Padding at end of inode bitmap is not set. Fix? yes
0ab26d
+
0ab26d
 
0ab26d
 test_filesys: ***** FILE SYSTEM WAS MODIFIED *****
0ab26d
 test_filesys: 11/32 files (9.1% non-contiguous), 22/100 blocks
0ab26d
diff --git a/tests/f_dup/expect.1 b/tests/f_dup/expect.1
0ab26d
index 075e62c1..635a0dfc 100644
0ab26d
--- a/tests/f_dup/expect.1
0ab26d
+++ b/tests/f_dup/expect.1
0ab26d
@@ -30,6 +30,8 @@ Fix? yes
0ab26d
 Free blocks count wrong (62, counted=60).
0ab26d
 Fix? yes
0ab26d
 
0ab26d
+Padding at end of inode bitmap is not set. Fix? yes
0ab26d
+
0ab26d
 Padding at end of block bitmap is not set. Fix? yes
0ab26d
 
0ab26d
 
0ab26d
diff --git a/tests/f_dup2/expect.1 b/tests/f_dup2/expect.1
0ab26d
index 69aa21b4..04d7304b 100644
0ab26d
--- a/tests/f_dup2/expect.1
0ab26d
+++ b/tests/f_dup2/expect.1
0ab26d
@@ -37,6 +37,8 @@ Fix? yes
0ab26d
 Free blocks count wrong (26, counted=22).
0ab26d
 Fix? yes
0ab26d
 
0ab26d
+Padding at end of inode bitmap is not set. Fix? yes
0ab26d
+
0ab26d
 Padding at end of block bitmap is not set. Fix? yes
0ab26d
 
0ab26d
 
0ab26d
diff --git a/tests/f_dup3/expect.1 b/tests/f_dup3/expect.1
0ab26d
index eab75a8d..5f79cb89 100644
0ab26d
--- a/tests/f_dup3/expect.1
0ab26d
+++ b/tests/f_dup3/expect.1
0ab26d
@@ -39,6 +39,8 @@ Fix? yes
0ab26d
 Free blocks count wrong (20, counted=19).
0ab26d
 Fix? yes
0ab26d
 
0ab26d
+Padding at end of inode bitmap is not set. Fix? yes
0ab26d
+
0ab26d
 
0ab26d
 test_filesys: ***** FILE SYSTEM WAS MODIFIED *****
0ab26d
 test_filesys: 16/16 files (25.0% non-contiguous), 81/100 blocks
0ab26d
diff --git a/tests/f_end-bitmap/expect.1 b/tests/f_end-bitmap/expect.1
0ab26d
index 87e2fd64..85c7e67f 100644
0ab26d
--- a/tests/f_end-bitmap/expect.1
0ab26d
+++ b/tests/f_end-bitmap/expect.1
0ab26d
@@ -8,6 +8,8 @@ Pass 5: Checking group summary information
0ab26d
 Free blocks count wrong for group #0 (44, counted=63).
0ab26d
 Fix? yes
0ab26d
 
0ab26d
+Padding at end of inode bitmap is not set. Fix? yes
0ab26d
+
0ab26d
 Padding at end of block bitmap is not set. Fix? yes
0ab26d
 
0ab26d
 
0ab26d
diff --git a/tests/f_illbbitmap/expect.1 b/tests/f_illbbitmap/expect.1
0ab26d
index 8746d23a..40996cd6 100644
0ab26d
--- a/tests/f_illbbitmap/expect.1
0ab26d
+++ b/tests/f_illbbitmap/expect.1
0ab26d
@@ -22,6 +22,8 @@ Fix? yes
0ab26d
 Inode bitmap differences:  -(12--21)
0ab26d
 Fix? yes
0ab26d
 
0ab26d
+Padding at end of inode bitmap is not set. Fix? yes
0ab26d
+
0ab26d
 
0ab26d
 test_filesys: ***** FILE SYSTEM WAS MODIFIED *****
0ab26d
 test_filesys: 11/32 files (0.0% non-contiguous), 22/100 blocks
0ab26d
diff --git a/tests/f_illibitmap/expect.1 b/tests/f_illibitmap/expect.1
0ab26d
index 5bae25d1..bf21df7a 100644
0ab26d
--- a/tests/f_illibitmap/expect.1
0ab26d
+++ b/tests/f_illibitmap/expect.1
0ab26d
@@ -19,6 +19,8 @@ Pass 5: Checking group summary information
0ab26d
 Inode bitmap differences:  +(1--11)
0ab26d
 Fix? yes
0ab26d
 
0ab26d
+Padding at end of inode bitmap is not set. Fix? yes
0ab26d
+
0ab26d
 
0ab26d
 test_filesys: ***** FILE SYSTEM WAS MODIFIED *****
0ab26d
 test_filesys: 11/32 files (0.0% non-contiguous), 22/100 blocks
0ab26d
diff --git a/tests/f_illitable_flexbg/expect.1 b/tests/f_illitable_flexbg/expect.1
0ab26d
index fa42a0f8..4ac12463 100644
0ab26d
--- a/tests/f_illitable_flexbg/expect.1
0ab26d
+++ b/tests/f_illitable_flexbg/expect.1
0ab26d
@@ -18,6 +18,8 @@ Pass 5: Checking group summary information
0ab26d
 Inode bitmap differences:  -(65--128)
0ab26d
 Fix? yes
0ab26d
 
0ab26d
+Padding at end of inode bitmap is not set. Fix? yes
0ab26d
+
0ab26d
 
0ab26d
 test_filesys: ***** FILE SYSTEM WAS MODIFIED *****
0ab26d
 test_filesys: 12/256 files (0.0% non-contiguous), 31163/32768 blocks
0ab26d
diff --git a/tests/f_lpf/expect.1 b/tests/f_lpf/expect.1
0ab26d
index 4f2853c5..6ef996bb 100644
0ab26d
--- a/tests/f_lpf/expect.1
0ab26d
+++ b/tests/f_lpf/expect.1
0ab26d
@@ -42,6 +42,8 @@ Fix? yes
0ab26d
 Free inodes count wrong (1, counted=0).
0ab26d
 Fix? yes
0ab26d
 
0ab26d
+Padding at end of inode bitmap is not set. Fix? yes
0ab26d
+
0ab26d
 
0ab26d
 test_filesys: ***** FILE SYSTEM WAS MODIFIED *****
0ab26d
 test_filesys: 16/16 files (12.5% non-contiguous), 67/100 blocks
0ab26d
diff --git a/tests/f_overfsblks/expect.1 b/tests/f_overfsblks/expect.1
0ab26d
index e5b93f0d..bc8f2a87 100644
0ab26d
--- a/tests/f_overfsblks/expect.1
0ab26d
+++ b/tests/f_overfsblks/expect.1
0ab26d
@@ -13,6 +13,8 @@ Pass 5: Checking group summary information
0ab26d
 Inode bitmap differences:  -(12--21)
0ab26d
 Fix? yes
0ab26d
 
0ab26d
+Padding at end of inode bitmap is not set. Fix? yes
0ab26d
+
0ab26d
 
0ab26d
 test_filesys: ***** FILE SYSTEM WAS MODIFIED *****
0ab26d
 test_filesys: 11/32 files (0.0% non-contiguous), 22/100 blocks
0ab26d
diff --git a/tests/f_super_bad_csum/expect.1 b/tests/f_super_bad_csum/expect.1
0ab26d
index 25ced5c8..12adee97 100644
0ab26d
--- a/tests/f_super_bad_csum/expect.1
0ab26d
+++ b/tests/f_super_bad_csum/expect.1
0ab26d
@@ -5,8 +5,8 @@ Pass 2: Checking directory structure
0ab26d
 Pass 3: Checking directory connectivity
0ab26d
 Pass 4: Checking reference counts
0ab26d
 Pass 5: Checking group summary information
0ab26d
-Inode bitmap differences: Group 1 inode bitmap does not match checksum.
0ab26d
-FIXED.
0ab26d
+Padding at end of inode bitmap is not set. Fix? yes
0ab26d
+
0ab26d
 
0ab26d
 test_filesys: ***** FILE SYSTEM WAS MODIFIED *****
0ab26d
 test_filesys: 11/1024 files (0.0% non-contiguous), 1557/16384 blocks
0ab26d
diff --git a/tests/j_corrupt_ext_jnl_sb_csum/expect b/tests/j_corrupt_ext_jnl_sb_csum/expect
0ab26d
index 70a4fe72..4212a000 100644
0ab26d
--- a/tests/j_corrupt_ext_jnl_sb_csum/expect
0ab26d
+++ b/tests/j_corrupt_ext_jnl_sb_csum/expect
0ab26d
@@ -12,6 +12,8 @@ Fix? yes
0ab26d
 Inode bitmap differences:  +(1--11)
0ab26d
 Fix? yes
0ab26d
 
0ab26d
+Padding at end of inode bitmap is not set. Fix? yes
0ab26d
+
0ab26d
 
0ab26d
 test_filesys: ***** FILE SYSTEM WAS MODIFIED *****
0ab26d
 test_filesys: 11/128 files (0.0% non-contiguous), 66/2048 blocks
0ab26d
diff --git a/tests/j_ext_long_trans/expect b/tests/j_ext_long_trans/expect
0ab26d
index d379610e..ea3c87fc 100644
0ab26d
--- a/tests/j_ext_long_trans/expect
0ab26d
+++ b/tests/j_ext_long_trans/expect
0ab26d
@@ -98,6 +98,8 @@ Fix? yes
0ab26d
 Free inodes count wrong (16372, counted=16373).
0ab26d
 Fix? yes
0ab26d
 
0ab26d
+Padding at end of inode bitmap is not set. Fix? yes
0ab26d
+
0ab26d
 
0ab26d
 test_filesys: ***** FILE SYSTEM WAS MODIFIED *****
0ab26d
 test_filesys: 11/16384 files (0.0% non-contiguous), 6228/262144 blocks
0ab26d
diff --git a/tests/j_long_trans/expect b/tests/j_long_trans/expect
0ab26d
index 7a175414..82b3caf1 100644
0ab26d
--- a/tests/j_long_trans/expect
0ab26d
+++ b/tests/j_long_trans/expect
0ab26d
@@ -96,6 +96,8 @@ Fix? yes
0ab26d
 Free inodes count wrong (16372, counted=16373).
0ab26d
 Fix? yes
0ab26d
 
0ab26d
+Padding at end of inode bitmap is not set. Fix? yes
0ab26d
+
0ab26d
 Recreate journal? yes
0ab26d
 
0ab26d
 Creating journal (8192 blocks):  Done.
0ab26d
diff --git a/tests/j_long_trans_mcsum_32bit/expect b/tests/j_long_trans_mcsum_32bit/expect
0ab26d
index a808d9f4..ffae07a6 100644
0ab26d
--- a/tests/j_long_trans_mcsum_32bit/expect
0ab26d
+++ b/tests/j_long_trans_mcsum_32bit/expect
0ab26d
@@ -135,6 +135,8 @@ Fix? yes
0ab26d
 Free inodes count wrong (32756, counted=32757).
0ab26d
 Fix? yes
0ab26d
 
0ab26d
+Padding at end of inode bitmap is not set. Fix? yes
0ab26d
+
0ab26d
 Recreate journal? yes
0ab26d
 
0ab26d
 Creating journal (16384 blocks):  Done.
0ab26d
diff --git a/tests/j_long_trans_mcsum_64bit/expect b/tests/j_long_trans_mcsum_64bit/expect
0ab26d
index 76e109a4..e891def1 100644
0ab26d
--- a/tests/j_long_trans_mcsum_64bit/expect
0ab26d
+++ b/tests/j_long_trans_mcsum_64bit/expect
0ab26d
@@ -134,6 +134,8 @@ Fix? yes
0ab26d
 Free inodes count wrong (32756, counted=32757).
0ab26d
 Fix? yes
0ab26d
 
0ab26d
+Padding at end of inode bitmap is not set. Fix? yes
0ab26d
+
0ab26d
 Recreate journal? yes
0ab26d
 
0ab26d
 Creating journal (16384 blocks):  Done.
0ab26d
diff --git a/tests/j_recover_csum2_32bit/expect.1 b/tests/j_recover_csum2_32bit/expect.1
0ab26d
index 491784a2..fdbda36e 100644
0ab26d
--- a/tests/j_recover_csum2_32bit/expect.1
0ab26d
+++ b/tests/j_recover_csum2_32bit/expect.1
0ab26d
@@ -10,6 +10,8 @@ Fix? yes
0ab26d
 Inode bitmap differences:  +(1--11)
0ab26d
 Fix? yes
0ab26d
 
0ab26d
+Padding at end of inode bitmap is not set. Fix? yes
0ab26d
+
0ab26d
 
0ab26d
 test_filesys: ***** FILE SYSTEM WAS MODIFIED *****
0ab26d
 test_filesys: 11/8192 files (0.0% non-contiguous), 7739/131072 blocks
0ab26d
diff --git a/tests/j_recover_csum2_64bit/expect.1 b/tests/j_recover_csum2_64bit/expect.1
0ab26d
index 491784a2..fdbda36e 100644
0ab26d
--- a/tests/j_recover_csum2_64bit/expect.1
0ab26d
+++ b/tests/j_recover_csum2_64bit/expect.1
0ab26d
@@ -10,6 +10,8 @@ Fix? yes
0ab26d
 Inode bitmap differences:  +(1--11)
0ab26d
 Fix? yes
0ab26d
 
0ab26d
+Padding at end of inode bitmap is not set. Fix? yes
0ab26d
+
0ab26d
 
0ab26d
 test_filesys: ***** FILE SYSTEM WAS MODIFIED *****
0ab26d
 test_filesys: 11/8192 files (0.0% non-contiguous), 7739/131072 blocks
0ab26d
diff --git a/tests/j_short_trans/expect b/tests/j_short_trans/expect
0ab26d
index bcc8fe82..2bd0e506 100644
0ab26d
--- a/tests/j_short_trans/expect
0ab26d
+++ b/tests/j_short_trans/expect
0ab26d
@@ -32,6 +32,8 @@ Fix? yes
0ab26d
 Inode bitmap differences:  +(1--11)
0ab26d
 Fix? yes
0ab26d
 
0ab26d
+Padding at end of inode bitmap is not set. Fix? yes
0ab26d
+
0ab26d
 
0ab26d
 test_filesys: ***** FILE SYSTEM WAS MODIFIED *****
0ab26d
 test_filesys: 11/16384 files (0.0% non-contiguous), 5164/65536 blocks
0ab26d
diff --git a/tests/j_short_trans_64bit/expect b/tests/j_short_trans_64bit/expect
0ab26d
index f9971eba..808dc61d 100644
0ab26d
--- a/tests/j_short_trans_64bit/expect
0ab26d
+++ b/tests/j_short_trans_64bit/expect
0ab26d
@@ -34,6 +34,8 @@ Fix? yes
0ab26d
 Inode bitmap differences:  +(1--11)
0ab26d
 Fix? yes
0ab26d
 
0ab26d
+Padding at end of inode bitmap is not set. Fix? yes
0ab26d
+
0ab26d
 
0ab26d
 test_filesys: ***** FILE SYSTEM WAS MODIFIED *****
0ab26d
 test_filesys: 11/16384 files (0.0% non-contiguous), 5196/65536 blocks
0ab26d
diff --git a/tests/j_short_trans_mcsum_64bit/expect b/tests/j_short_trans_mcsum_64bit/expect
0ab26d
index d876ff09..d73e2829 100644
0ab26d
--- a/tests/j_short_trans_mcsum_64bit/expect
0ab26d
+++ b/tests/j_short_trans_mcsum_64bit/expect
0ab26d
@@ -34,6 +34,8 @@ Fix? yes
0ab26d
 Inode bitmap differences:  +(1--11)
0ab26d
 Fix? yes
0ab26d
 
0ab26d
+Padding at end of inode bitmap is not set. Fix? yes
0ab26d
+
0ab26d
 
0ab26d
 test_filesys: ***** FILE SYSTEM WAS MODIFIED *****
0ab26d
 test_filesys: 11/32768 files (0.0% non-contiguous), 6353/131072 blocks
0ab26d
diff --git a/tests/j_short_trans_old_csum/expect b/tests/j_short_trans_old_csum/expect
0ab26d
index 29ac27fb..6cf06d4a 100644
0ab26d
--- a/tests/j_short_trans_old_csum/expect
0ab26d
+++ b/tests/j_short_trans_old_csum/expect
0ab26d
@@ -34,6 +34,8 @@ Fix? yes
0ab26d
 Inode bitmap differences:  +(1--11)
0ab26d
 Fix? yes
0ab26d
 
0ab26d
+Padding at end of inode bitmap is not set. Fix? yes
0ab26d
+
0ab26d
 
0ab26d
 test_filesys: ***** FILE SYSTEM WAS MODIFIED *****
0ab26d
 test_filesys: 11/16384 files (0.0% non-contiguous), 5164/65536 blocks
0ab26d
diff --git a/tests/j_short_trans_open_recover/expect b/tests/j_short_trans_open_recover/expect
0ab26d
index be6e363d..3e868197 100644
0ab26d
--- a/tests/j_short_trans_open_recover/expect
0ab26d
+++ b/tests/j_short_trans_open_recover/expect
0ab26d
@@ -37,6 +37,8 @@ Fix? yes
0ab26d
 Inode bitmap differences:  +(1--11)
0ab26d
 Fix? yes
0ab26d
 
0ab26d
+Padding at end of inode bitmap is not set. Fix? yes
0ab26d
+
0ab26d
 
0ab26d
 test_filesys: ***** FILE SYSTEM WAS MODIFIED *****
0ab26d
 test_filesys: 11/16384 files (0.0% non-contiguous), 5164/65536 blocks
0ab26d
diff --git a/tests/j_short_trans_recover/expect b/tests/j_short_trans_recover/expect
0ab26d
index 75867337..508858c9 100644
0ab26d
--- a/tests/j_short_trans_recover/expect
0ab26d
+++ b/tests/j_short_trans_recover/expect
0ab26d
@@ -34,6 +34,8 @@ Fix? yes
0ab26d
 Inode bitmap differences:  +(1--11)
0ab26d
 Fix? yes
0ab26d
 
0ab26d
+Padding at end of inode bitmap is not set. Fix? yes
0ab26d
+
0ab26d
 
0ab26d
 test_filesys: ***** FILE SYSTEM WAS MODIFIED *****
0ab26d
 test_filesys: 11/16384 files (0.0% non-contiguous), 5164/65536 blocks
0ab26d
diff --git a/tests/j_short_trans_recover_mcsum_64bit/expect b/tests/j_short_trans_recover_mcsum_64bit/expect
0ab26d
index 9cc33097..8c637f12 100644
0ab26d
--- a/tests/j_short_trans_recover_mcsum_64bit/expect
0ab26d
+++ b/tests/j_short_trans_recover_mcsum_64bit/expect
0ab26d
@@ -36,6 +36,8 @@ Fix? yes
0ab26d
 Inode bitmap differences:  +(1--11)
0ab26d
 Fix? yes
0ab26d
 
0ab26d
+Padding at end of inode bitmap is not set. Fix? yes
0ab26d
+
0ab26d
 
0ab26d
 test_filesys: ***** FILE SYSTEM WAS MODIFIED *****
0ab26d
 test_filesys: 11/32768 files (0.0% non-contiguous), 6353/131072 blocks
0ab26d
diff --git a/tests/t_replay_and_set/expect b/tests/t_replay_and_set/expect
0ab26d
index f63a73af..3e19d92e 100644
0ab26d
--- a/tests/t_replay_and_set/expect
0ab26d
+++ b/tests/t_replay_and_set/expect
0ab26d
@@ -30,6 +30,8 @@ Fix? yes
0ab26d
 Inode bitmap differences:  +(1--11)
0ab26d
 Fix? yes
0ab26d
 
0ab26d
+Padding at end of inode bitmap is not set. Fix? yes
0ab26d
+
0ab26d
 
0ab26d
 test_filesys: ***** FILE SYSTEM WAS MODIFIED *****
0ab26d
 test_filesys: 11/16384 files (0.0% non-contiguous), 5164/65536 blocks
0ab26d
-- 
0ab26d
2.20.1
0ab26d