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

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