aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLi Dongyang <dongyangli@ddn.com>2020-01-26 22:06:36 -0500
committerTheodore Ts'o <tytso@mit.edu>2020-01-26 23:10:05 -0500
commit59037c5357d39c6d0f14a0aff70e67dc13eafc84 (patch)
treef85c853ef07d80759b15ddbfabe55f4eeb9481b0
parent6022925dc445eafb3d06793406af786645303f4a (diff)
downloade2fsprogs-59037c5357d39c6d0f14a0aff70e67dc13eafc84.tar.gz
mke2fs: set overhead in super block
If overhead is not recorded in the super block, it is calculated during mount in kernel, for bigalloc file systems it takes O(groups**2) in time. For a 1PB device with 32K cluster size it takes ~12 mins to mount, with most of the time spent on figuring out overhead. While we can not improve the overhead algorithm in kernel due to the nature of bigalloc, we can work out the overhead during mke2fs and set it in the super block, avoiding calculating it every time when it mounts. Overhead is s_first_data_block plus internal journal blocks plus the block and inode bitmaps, inode table, super block backups and group descriptor blocks for every group. This patch introduces ext2fs_count_used_clusters(), which calculates the clusters used in the block bitmap for the given range. When bad blocks are involved, it gets tricky because the blocks counted as overhead and the bad blocks can end up in the same allocation cluster. In this case we will unmark the bad blocks from the block bitmap, convert to cluster bitmap and get the overhead, then mark the bad blocks back in the cluster bitmap. Reset the overhead to zero when resizing, we can not simply count the used blocks as overhead like we do when mke2fs. The overhead can be calculated by kernel side during mount. Signed-off-by: Li Dongyang <dongyangli@ddn.com> Signed-off-by: Theodore Ts'o <tytso@mit.edu>
-rw-r--r--lib/ext2fs/ext2fs.h2
-rw-r--r--lib/ext2fs/gen_bitmap64.c35
-rw-r--r--misc/mke2fs.c47
-rw-r--r--resize/resize2fs.c1
-rw-r--r--tests/f_opt_extent/expect6
-rw-r--r--tests/m_64bit_flexbg/expect.11
-rw-r--r--tests/m_bigjournal/expect.11
-rw-r--r--tests/m_dasd_bs/expect.11
-rw-r--r--tests/m_desc_size_128/expect.11
-rw-r--r--tests/m_extent_journal/expect.11
-rw-r--r--tests/m_large_file/expect.11
-rw-r--r--tests/m_meta_bg/expect.11
-rw-r--r--tests/m_minrootdir/expect1
-rw-r--r--tests/m_mmp/expect.11
-rw-r--r--tests/m_no_opt/expect.11
-rw-r--r--tests/m_quota/expect.11
-rw-r--r--tests/m_raid_opt/expect.11
-rw-r--r--tests/m_resize_inode_meta_bg/expect.11
-rw-r--r--tests/m_root_owner/expect.11
-rw-r--r--tests/m_rootdir/expect1
-rw-r--r--tests/m_std/expect.11
-rw-r--r--tests/m_uninit/expect.11
-rw-r--r--tests/r_32to64bit/expect14
-rw-r--r--tests/r_32to64bit_meta/expect7
-rw-r--r--tests/r_32to64bit_move_itable/expect11
-rw-r--r--tests/r_64to32bit/expect9
-rw-r--r--tests/r_64to32bit_meta/expect7
-rw-r--r--tests/t_disable_mcsum/expect2
-rw-r--r--tests/t_disable_mcsum_noinitbg/expect4
-rw-r--r--tests/t_disable_mcsum_yesinitbg/expect2
-rw-r--r--tests/t_enable_mcsum/expect8
-rw-r--r--tests/t_enable_mcsum_ext3/expect8
-rw-r--r--tests/t_enable_mcsum_initbg/expect8
-rw-r--r--tests/t_iexpand_full/expect6
-rw-r--r--tests/t_iexpand_mcsum/expect6
35 files changed, 156 insertions, 44 deletions
diff --git a/lib/ext2fs/ext2fs.h b/lib/ext2fs/ext2fs.h
index 93ecf29c5..67576204c 100644
--- a/lib/ext2fs/ext2fs.h
+++ b/lib/ext2fs/ext2fs.h
@@ -1444,6 +1444,8 @@ errcode_t ext2fs_set_generic_bmap_range(ext2fs_generic_bitmap bmap,
void *in);
errcode_t ext2fs_convert_subcluster_bitmap(ext2_filsys fs,
ext2fs_block_bitmap *bitmap);
+errcode_t ext2fs_count_used_clusters(ext2_filsys fs, blk64_t start,
+ blk64_t end, blk64_t *out);
/* get_num_dirs.c */
extern errcode_t ext2fs_get_num_dirs(ext2_filsys fs, ext2_ino_t *ret_num_dirs);
diff --git a/lib/ext2fs/gen_bitmap64.c b/lib/ext2fs/gen_bitmap64.c
index f1dd18915..b2370667c 100644
--- a/lib/ext2fs/gen_bitmap64.c
+++ b/lib/ext2fs/gen_bitmap64.c
@@ -940,3 +940,38 @@ errcode_t ext2fs_find_first_set_generic_bmap(ext2fs_generic_bitmap bitmap,
return ENOENT;
}
+
+errcode_t ext2fs_count_used_clusters(ext2_filsys fs, blk64_t start,
+ blk64_t end, blk64_t *out)
+{
+ blk64_t next;
+ blk64_t tot_set = 0;
+ errcode_t retval;
+
+ while (start < end) {
+ retval = ext2fs_find_first_set_block_bitmap2(fs->block_map,
+ start, end, &next);
+ if (retval) {
+ if (retval == ENOENT)
+ retval = 0;
+ break;
+ }
+ start = next;
+
+ retval = ext2fs_find_first_zero_block_bitmap2(fs->block_map,
+ start, end, &next);
+ if (retval == 0) {
+ tot_set += next - start;
+ start = next + 1;
+ } else if (retval == ENOENT) {
+ retval = 0;
+ tot_set += end - start + 1;
+ break;
+ } else
+ break;
+ }
+
+ if (!retval)
+ *out = EXT2FS_NUM_B2C(fs, tot_set);
+ return retval;
+}
diff --git a/misc/mke2fs.c b/misc/mke2fs.c
index dc76a03b6..c90dcf0e8 100644
--- a/misc/mke2fs.c
+++ b/misc/mke2fs.c
@@ -2912,6 +2912,8 @@ int main (int argc, char *argv[])
errcode_t retval = 0;
ext2_filsys fs;
badblocks_list bb_list = 0;
+ badblocks_iterate bb_iter;
+ blk_t blk;
unsigned int journal_blocks = 0;
unsigned int i, checkinterval;
int max_mnt_count;
@@ -2922,6 +2924,7 @@ int main (int argc, char *argv[])
char opt_string[40];
char *hash_alg_str;
int itable_zeroed = 0;
+ blk64_t overhead;
#ifdef ENABLE_NLS
setlocale(LC_MESSAGES, "");
@@ -3213,6 +3216,23 @@ int main (int argc, char *argv[])
if (!quiet)
printf("%s", _("done \n"));
+ /*
+ * Unmark bad blocks to calculate overhead, because metadata
+ * blocks and bad blocks can land on the same allocation cluster.
+ */
+ if (bb_list) {
+ retval = ext2fs_badblocks_list_iterate_begin(bb_list,
+ &bb_iter);
+ if (retval) {
+ com_err("ext2fs_badblocks_list_iterate_begin", retval,
+ "%s", _("while unmarking bad blocks"));
+ exit(1);
+ }
+ while (ext2fs_badblocks_list_iterate(bb_iter, &blk))
+ ext2fs_unmark_block_bitmap2(fs->block_map, blk);
+ ext2fs_badblocks_list_iterate_end(bb_iter);
+ }
+
retval = ext2fs_convert_subcluster_bitmap(fs, &fs->block_map);
if (retval) {
com_err(program_name, retval, "%s",
@@ -3220,6 +3240,28 @@ int main (int argc, char *argv[])
exit(1);
}
+ retval = ext2fs_count_used_clusters(fs, fs->super->s_first_data_block,
+ ext2fs_blocks_count(fs->super) - 1,
+ &overhead);
+ if (retval) {
+ com_err(program_name, retval, "%s",
+ _("while calculating overhead"));
+ exit(1);
+ }
+
+ if (bb_list) {
+ retval = ext2fs_badblocks_list_iterate_begin(bb_list,
+ &bb_iter);
+ if (retval) {
+ com_err("ext2fs_badblocks_list_iterate_begin", retval,
+ "%s", _("while marking bad blocks as used"));
+ exit(1);
+ }
+ while (ext2fs_badblocks_list_iterate(bb_iter, &blk))
+ ext2fs_mark_block_bitmap2(fs->block_map, blk);
+ ext2fs_badblocks_list_iterate_end(bb_iter);
+ }
+
if (super_only) {
check_plausibility(device_name, CHECK_FS_EXIST, NULL);
printf(_("%s may be further corrupted by superblock rewrite\n"),
@@ -3317,6 +3359,7 @@ int main (int argc, char *argv[])
free(journal_device);
} else if ((journal_size) ||
ext2fs_has_feature_journal(&fs_param)) {
+ overhead += EXT2FS_NUM_B2C(fs, journal_blocks);
if (super_only) {
printf("%s", _("Skipping journal creation in super-only mode\n"));
fs->super->s_journal_inum = EXT2_JOURNAL_INO;
@@ -3359,6 +3402,10 @@ no_journal:
fs->super->s_mmp_update_interval);
}
+ overhead += fs->super->s_first_data_block;
+ if (!super_only)
+ fs->super->s_overhead_clusters = overhead;
+
if (ext2fs_has_feature_bigalloc(&fs_param))
fix_cluster_bg_counts(fs);
if (ext2fs_has_feature_quota(&fs_param))
diff --git a/resize/resize2fs.c b/resize/resize2fs.c
index 8a3d08db1..2443ff676 100644
--- a/resize/resize2fs.c
+++ b/resize/resize2fs.c
@@ -703,6 +703,7 @@ errcode_t adjust_fs_info(ext2_filsys fs, ext2_filsys old_fs,
double percent;
ext2fs_blocks_count_set(fs->super, new_size);
+ fs->super->s_overhead_clusters = 0;
retry:
fs->group_desc_count = ext2fs_div64_ceil(ext2fs_blocks_count(fs->super) -
diff --git a/tests/f_opt_extent/expect b/tests/f_opt_extent/expect
index 6d4863b51..6d1f9d113 100644
--- a/tests/f_opt_extent/expect
+++ b/tests/f_opt_extent/expect
@@ -26,16 +26,16 @@ Pass 5: Checking group summary information
Change in FS metadata:
-@@ -10,7 +10,7 @@
- Inode count: 65536
+@@ -11,7 +11,7 @@
Block count: 524288
Reserved block count: 26214
+ Overhead clusters: 35246
-Free blocks: 570
+Free blocks: 567
Free inodes: 65047
First block: 1
Block size: 1024
-@@ -47,8 +47,8 @@
+@@ -48,8 +48,8 @@
Block bitmap at 262 (+261)
Inode bitmap at 278 (+277)
Inode table at 294-549 (+293)
diff --git a/tests/m_64bit_flexbg/expect.1 b/tests/m_64bit_flexbg/expect.1
index cfa3bc9bf..956d24854 100644
--- a/tests/m_64bit_flexbg/expect.1
+++ b/tests/m_64bit_flexbg/expect.1
@@ -24,6 +24,7 @@ Filesystem OS type: Linux
Inode count: 128
Block count: 1024
Reserved block count: 51
+Overhead clusters: 28
Free blocks: 982
Free inodes: 117
First block: 1
diff --git a/tests/m_bigjournal/expect.1 b/tests/m_bigjournal/expect.1
index 890059669..80f71d1f7 100644
--- a/tests/m_bigjournal/expect.1
+++ b/tests/m_bigjournal/expect.1
@@ -18,6 +18,7 @@ Filesystem OS type: Linux
Inode count: 1344
Block count: 2750000
Reserved block count: 137500
+Overhead clusters: 1286982
Free blocks: 1463011
Free inodes: 1333
First block: 0
diff --git a/tests/m_dasd_bs/expect.1 b/tests/m_dasd_bs/expect.1
index 0e55e8f7e..970d556dd 100644
--- a/tests/m_dasd_bs/expect.1
+++ b/tests/m_dasd_bs/expect.1
@@ -26,6 +26,7 @@ Filesystem OS type: Linux
Inode count: 16384
Block count: 32768
Reserved block count: 1638
+Overhead clusters: 1094
Free blocks: 31664
Free inodes: 16373
First block: 0
diff --git a/tests/m_desc_size_128/expect.1 b/tests/m_desc_size_128/expect.1
index 5a7da87b7..1cd9758f9 100644
--- a/tests/m_desc_size_128/expect.1
+++ b/tests/m_desc_size_128/expect.1
@@ -26,6 +26,7 @@ Filesystem OS type: Linux
Inode count: 8192
Block count: 131072
Reserved block count: 6553
+Overhead clusters: 4284
Free blocks: 126774
Free inodes: 8181
First block: 1
diff --git a/tests/m_extent_journal/expect.1 b/tests/m_extent_journal/expect.1
index 34e8a80d3..cfc052a81 100644
--- a/tests/m_extent_journal/expect.1
+++ b/tests/m_extent_journal/expect.1
@@ -27,6 +27,7 @@ Filesystem OS type: Linux
Inode count: 16384
Block count: 65536
Reserved block count: 3276
+Overhead clusters: 7446
Free blocks: 58076
Free inodes: 16373
First block: 1
diff --git a/tests/m_large_file/expect.1 b/tests/m_large_file/expect.1
index 06c825746..955ba77d4 100644
--- a/tests/m_large_file/expect.1
+++ b/tests/m_large_file/expect.1
@@ -24,6 +24,7 @@ Filesystem OS type: Linux
Inode count: 64
Block count: 16384
Reserved block count: 819
+Overhead clusters: 11
Free blocks: 16367
Free inodes: 53
First block: 0
diff --git a/tests/m_meta_bg/expect.1 b/tests/m_meta_bg/expect.1
index 7df4230ca..1b90b5543 100644
--- a/tests/m_meta_bg/expect.1
+++ b/tests/m_meta_bg/expect.1
@@ -26,6 +26,7 @@ Filesystem OS type: Linux
Inode count: 32768
Block count: 131072
Reserved block count: 6553
+Overhead clusters: 4376
Free blocks: 126683
Free inodes: 32757
First block: 1
diff --git a/tests/m_minrootdir/expect b/tests/m_minrootdir/expect
index 90158da05..d2e9a9e28 100644
--- a/tests/m_minrootdir/expect
+++ b/tests/m_minrootdir/expect
@@ -11,6 +11,7 @@ Filesystem OS type: Linux
Inode count: 1024
Block count: 16384
Reserved block count: 819
+Overhead clusters: 265
Free blocks: 16065
Free inodes: 1006
First block: 1
diff --git a/tests/m_mmp/expect.1 b/tests/m_mmp/expect.1
index 9d8a5a3cd..475cd1d08 100644
--- a/tests/m_mmp/expect.1
+++ b/tests/m_mmp/expect.1
@@ -27,6 +27,7 @@ Filesystem OS type: Linux
Inode count: 65536
Block count: 65536
Reserved block count: 3276
+Overhead clusters: 2086
Free blocks: 63443
Free inodes: 65525
First block: 0
diff --git a/tests/m_no_opt/expect.1 b/tests/m_no_opt/expect.1
index 58b311c4e..deaf22ef3 100644
--- a/tests/m_no_opt/expect.1
+++ b/tests/m_no_opt/expect.1
@@ -26,6 +26,7 @@ Filesystem OS type: Linux
Inode count: 16384
Block count: 65536
Reserved block count: 3276
+Overhead clusters: 2081
Free blocks: 63442
Free inodes: 16373
First block: 1
diff --git a/tests/m_quota/expect.1 b/tests/m_quota/expect.1
index 8cdad3017..74e38ca30 100644
--- a/tests/m_quota/expect.1
+++ b/tests/m_quota/expect.1
@@ -26,6 +26,7 @@ Filesystem OS type: Linux
Inode count: 32768
Block count: 131072
Reserved block count: 6553
+Overhead clusters: 9773
Free blocks: 121267
Free inodes: 32756
First block: 1
diff --git a/tests/m_raid_opt/expect.1 b/tests/m_raid_opt/expect.1
index 0fccb7cad..753663121 100644
--- a/tests/m_raid_opt/expect.1
+++ b/tests/m_raid_opt/expect.1
@@ -26,6 +26,7 @@ Filesystem OS type: Linux
Inode count: 32768
Block count: 131072
Reserved block count: 6553
+Overhead clusters: 7224
Free blocks: 123834
Free inodes: 32757
First block: 1
diff --git a/tests/m_resize_inode_meta_bg/expect.1 b/tests/m_resize_inode_meta_bg/expect.1
index d36f97300..6a7f3993d 100644
--- a/tests/m_resize_inode_meta_bg/expect.1
+++ b/tests/m_resize_inode_meta_bg/expect.1
@@ -27,6 +27,7 @@ Filesystem OS type: Linux
Inode count: 960
Block count: 3840
Reserved block count: 192
+Overhead clusters: 1122
Free blocks: 2713
Free inodes: 949
First block: 0
diff --git a/tests/m_root_owner/expect.1 b/tests/m_root_owner/expect.1
index 30d119e22..9c978b021 100644
--- a/tests/m_root_owner/expect.1
+++ b/tests/m_root_owner/expect.1
@@ -24,6 +24,7 @@ Filesystem OS type: Linux
Inode count: 128
Block count: 1024
Reserved block count: 51
+Overhead clusters: 24
Free blocks: 986
Free inodes: 117
First block: 1
diff --git a/tests/m_rootdir/expect b/tests/m_rootdir/expect
index 7b5c18d28..113ffc64d 100644
--- a/tests/m_rootdir/expect
+++ b/tests/m_rootdir/expect
@@ -10,6 +10,7 @@ Filesystem OS type: Linux
Inode count: 1024
Block count: 16384
Reserved block count: 819
+Overhead clusters: 1543
Free blocks: 14786
Free inodes: 1005
First block: 1
diff --git a/tests/m_std/expect.1 b/tests/m_std/expect.1
index b05031f8e..a11cb9bc7 100644
--- a/tests/m_std/expect.1
+++ b/tests/m_std/expect.1
@@ -26,6 +26,7 @@ Filesystem OS type: Linux
Inode count: 16384
Block count: 65536
Reserved block count: 3276
+Overhead clusters: 3350
Free blocks: 62172
Free inodes: 16373
First block: 1
diff --git a/tests/m_uninit/expect.1 b/tests/m_uninit/expect.1
index e886dfbf1..b60e8cc81 100644
--- a/tests/m_uninit/expect.1
+++ b/tests/m_uninit/expect.1
@@ -26,6 +26,7 @@ Filesystem OS type: Linux
Inode count: 32768
Block count: 131072
Reserved block count: 6553
+Overhead clusters: 5677
Free blocks: 125381
Free inodes: 32757
First block: 1
diff --git a/tests/r_32to64bit/expect b/tests/r_32to64bit/expect
index f5fa56bc3..c6816b7f9 100644
--- a/tests/r_32to64bit/expect
+++ b/tests/r_32to64bit/expect
@@ -31,7 +31,13 @@ Change in FS metadata:
Default mount options: user_xattr acl
Filesystem state: clean
Errors behavior: Continue
-@@ -15,7 +15,8 @@
+@@ -10,13 +10,13 @@
+ Inode count: 65536
+ Block count: 524288
+ Reserved block count: 26214
+-Overhead clusters: 35228
+ Free blocks: 589
+ Free inodes: 65048
First block: 1
Block size: 1024
Fragment size: 1024
@@ -41,7 +47,7 @@ Change in FS metadata:
Blocks per group: 8192
Fragments per group: 8192
Inodes per group: 1024
-@@ -40,16 +41,16 @@
+@@ -41,16 +41,16 @@
group:block:super:gdt:bbitmap:ibitmap:itable
@@ -64,7 +70,7 @@ Change in FS metadata:
10:81921:-1:-1:270:286:2852
11:90113:-1:-1:271:287:3108
12:98305:-1:-1:272:288:3364
-@@ -65,9 +66,9 @@
+@@ -66,9 +66,9 @@
22:180225:-1:-1:131079:131095:132641
23:188417:-1:-1:131080:131096:132897
24:196609:-1:-1:131081:131097:133153
@@ -76,7 +82,7 @@ Change in FS metadata:
28:229377:-1:-1:131085:131101:134177
29:237569:-1:-1:131086:131102:134433
30:245761:-1:-1:131087:131103:134689
-@@ -89,7 +90,7 @@
+@@ -90,7 +90,7 @@
46:376833:-1:-1:262159:262175:265761
47:385025:-1:-1:262160:262176:266017
48:393217:-1:-1:393217:393233:393249
diff --git a/tests/r_32to64bit_meta/expect b/tests/r_32to64bit_meta/expect
index 0eacd4503..c4f39266b 100644
--- a/tests/r_32to64bit_meta/expect
+++ b/tests/r_32to64bit_meta/expect
@@ -31,10 +31,11 @@ Change in FS metadata:
Default mount options: user_xattr acl
Filesystem state: clean
Errors behavior: Continue
-@@ -10,11 +10,12 @@
+@@ -10,12 +10,12 @@
Inode count: 65536
Block count: 524288
Reserved block count: 26214
+-Overhead clusters: 32912
-Free blocks: 858
+Free blocks: 852
Free inodes: 65046
@@ -45,7 +46,7 @@ Change in FS metadata:
Blocks per group: 8192
Fragments per group: 8192
Inodes per group: 1024
-@@ -54,9 +55,9 @@
+@@ -55,9 +55,9 @@
12:98305:-1:-1:15:31:3107
13:106497:-1:-1:16:32:3363
14:114689:-1:-1:17:33:3619
@@ -58,7 +59,7 @@ Change in FS metadata:
18:147457:-1:-1:131075:131091:131617
19:155649:-1:-1:131076:131092:131873
20:163841:-1:-1:131077:131093:132129
-@@ -86,9 +87,9 @@
+@@ -87,9 +87,9 @@
44:360449:-1:-1:262158:262174:265250
45:368641:-1:-1:262159:262175:265506
46:376833:-1:-1:262160:262176:265762
diff --git a/tests/r_32to64bit_move_itable/expect b/tests/r_32to64bit_move_itable/expect
index b51663d5f..0a3b78e7f 100644
--- a/tests/r_32to64bit_move_itable/expect
+++ b/tests/r_32to64bit_move_itable/expect
@@ -31,10 +31,11 @@ Change in FS metadata:
Default mount options: user_xattr acl
Filesystem state: clean
Errors behavior: Continue
-@@ -10,11 +10,12 @@
+@@ -10,12 +10,12 @@
Inode count: 98304
Block count: 786432
Reserved block count: 39321
+-Overhead clusters: 41193
-Free blocks: 764
+Free blocks: 734
Free inodes: 97566
@@ -45,7 +46,7 @@ Change in FS metadata:
Blocks per group: 8192
Fragments per group: 8192
Inodes per group: 1024
-@@ -38,16 +39,16 @@
+@@ -39,16 +39,16 @@
group:block:super:gdt:bbitmap:ibitmap:itable
@@ -68,7 +69,7 @@ Change in FS metadata:
10:81921:-1:-1:81921:81922:81923
11:90113:-1:-1:90113:90114:90115
12:98305:-1:-1:98305:98306:98307
-@@ -63,9 +64,9 @@
+@@ -64,9 +64,9 @@
22:180225:-1:-1:180225:180226:180227
23:188417:-1:-1:188417:188418:188419
24:196609:-1:-1:196609:196610:196611
@@ -80,7 +81,7 @@ Change in FS metadata:
28:229377:-1:-1:229377:229378:229379
29:237569:-1:-1:237569:237570:237571
30:245761:-1:-1:245761:245762:245763
-@@ -87,7 +88,7 @@
+@@ -88,7 +88,7 @@
46:376833:-1:-1:376833:376834:376835
47:385025:-1:-1:385025:385026:385027
48:393217:-1:-1:393217:393218:393219
@@ -89,7 +90,7 @@ Change in FS metadata:
50:409601:-1:-1:409601:409602:409603
51:417793:-1:-1:417793:417794:417795
52:425985:-1:-1:425985:425986:425987
-@@ -119,7 +120,7 @@
+@@ -120,7 +120,7 @@
78:638977:-1:-1:638977:638978:638979
79:647169:-1:-1:647169:647170:647171
80:655361:-1:-1:655361:655362:655363
diff --git a/tests/r_64to32bit/expect b/tests/r_64to32bit/expect
index 13e94a2d2..7dff2a05f 100644
--- a/tests/r_64to32bit/expect
+++ b/tests/r_64to32bit/expect
@@ -31,10 +31,11 @@ Change in FS metadata:
Default mount options: user_xattr acl
Filesystem state: clean
Errors behavior: Continue
-@@ -10,12 +10,11 @@
+@@ -10,13 +10,11 @@
Inode count: 65536
Block count: 524288
Reserved block count: 26214
+-Overhead clusters: 35246
-Free blocks: 571
+Free blocks: 589
Free inodes: 65048
@@ -45,7 +46,7 @@ Change in FS metadata:
Reserved GDT blocks: 256
Blocks per group: 8192
Fragments per group: 8192
-@@ -41,16 +40,16 @@
+@@ -42,16 +40,16 @@
group:block:super:gdt:bbitmap:ibitmap:itable
@@ -68,7 +69,7 @@ Change in FS metadata:
10:81921:-1:-1:272:288:2854
11:90113:-1:-1:273:289:3110
12:98305:-1:-1:274:290:3366
-@@ -66,9 +65,9 @@
+@@ -67,9 +65,9 @@
22:180225:-1:-1:131079:131095:132641
23:188417:-1:-1:131080:131096:132897
24:196609:-1:-1:131081:131097:133153
@@ -80,7 +81,7 @@ Change in FS metadata:
28:229377:-1:-1:131085:131101:134177
29:237569:-1:-1:131086:131102:134433
30:245761:-1:-1:131087:131103:134689
-@@ -90,7 +89,7 @@
+@@ -91,7 +89,7 @@
46:376833:-1:-1:262159:262175:265761
47:385025:-1:-1:262160:262176:266017
48:393217:-1:-1:393217:393233:393249
diff --git a/tests/r_64to32bit_meta/expect b/tests/r_64to32bit_meta/expect
index d6e2dccc8..b17a87841 100644
--- a/tests/r_64to32bit_meta/expect
+++ b/tests/r_64to32bit_meta/expect
@@ -31,10 +31,11 @@ Change in FS metadata:
Default mount options: user_xattr acl
Filesystem state: clean
Errors behavior: Continue
-@@ -10,12 +10,11 @@
+@@ -10,13 +10,11 @@
Inode count: 65536
Block count: 524288
Reserved block count: 26214
+-Overhead clusters: 32918
-Free blocks: 852
+Free blocks: 858
Free inodes: 65046
@@ -45,7 +46,7 @@ Change in FS metadata:
Blocks per group: 8192
Fragments per group: 8192
Inodes per group: 1024
-@@ -55,9 +54,9 @@
+@@ -56,9 +54,9 @@
12:98305:-1:-1:15:31:3107
13:106497:-1:-1:16:32:3363
14:114689:-1:-1:17:33:3619
@@ -58,7 +59,7 @@ Change in FS metadata:
18:147457:-1:-1:131076:131092:131618
19:155649:-1:-1:131077:131093:131874
20:163841:-1:-1:131078:131094:132130
-@@ -87,9 +86,9 @@
+@@ -88,9 +86,9 @@
44:360449:-1:-1:262158:262174:265250
45:368641:-1:-1:262159:262175:265506
46:376833:-1:-1:262160:262176:265762
diff --git a/tests/t_disable_mcsum/expect b/tests/t_disable_mcsum/expect
index e04f26ad4..3341ad717 100644
--- a/tests/t_disable_mcsum/expect
+++ b/tests/t_disable_mcsum/expect
@@ -28,7 +28,7 @@ Change in FS metadata:
Default mount options: user_xattr acl
Filesystem state: clean
Errors behavior: Continue
-@@ -33,7 +33,6 @@
+@@ -34,7 +34,6 @@
Journal inode: 8
Default directory hash: half_md4
Journal backup: inode blocks
diff --git a/tests/t_disable_mcsum_noinitbg/expect b/tests/t_disable_mcsum_noinitbg/expect
index a022631d1..62eca4e94 100644
--- a/tests/t_disable_mcsum_noinitbg/expect
+++ b/tests/t_disable_mcsum_noinitbg/expect
@@ -28,7 +28,7 @@ Change in FS metadata:
Default mount options: user_xattr acl
Filesystem state: clean
Errors behavior: Continue
-@@ -33,7 +33,6 @@
+@@ -34,7 +34,6 @@
Journal inode: 8
Default directory hash: half_md4
Journal backup: inode blocks
@@ -36,7 +36,7 @@ Change in FS metadata:
Journal features: (none)
Journal size: 16M
Journal length: 16384
-@@ -47,18 +46,18 @@
+@@ -48,18 +47,18 @@
Block bitmap at 262 (+261)
Inode bitmap at 278 (+277)
Inode table at 294-549 (+293)
diff --git a/tests/t_disable_mcsum_yesinitbg/expect b/tests/t_disable_mcsum_yesinitbg/expect
index df3d6c0bb..7e3485fea 100644
--- a/tests/t_disable_mcsum_yesinitbg/expect
+++ b/tests/t_disable_mcsum_yesinitbg/expect
@@ -28,7 +28,7 @@ Change in FS metadata:
Default mount options: user_xattr acl
Filesystem state: clean
Errors behavior: Continue
-@@ -33,7 +33,6 @@
+@@ -34,7 +34,6 @@
Journal inode: 8
Default directory hash: half_md4
Journal backup: inode blocks
diff --git a/tests/t_enable_mcsum/expect b/tests/t_enable_mcsum/expect
index c8a2674bf..cb0aef625 100644
--- a/tests/t_enable_mcsum/expect
+++ b/tests/t_enable_mcsum/expect
@@ -43,16 +43,16 @@ Change in FS metadata:
Default mount options: user_xattr acl
Filesystem state: clean
Errors behavior: Continue
-@@ -10,7 +10,7 @@
- Inode count: 65536
+@@ -11,7 +11,7 @@
Block count: 524288
Reserved block count: 26214
+ Overhead clusters: 35246
-Free blocks: 571
+Free blocks: 568
Free inodes: 65048
First block: 1
Block size: 1024
-@@ -33,6 +33,7 @@
+@@ -34,6 +34,7 @@
Journal inode: 8
Default directory hash: half_md4
Journal backup: inode blocks
@@ -60,7 +60,7 @@ Change in FS metadata:
Journal features: (none)
Journal size: 16M
Journal length: 16384
-@@ -46,8 +47,8 @@
+@@ -47,8 +48,8 @@
Block bitmap at 262 (+261)
Inode bitmap at 278 (+277)
Inode table at 294-549 (+293)
diff --git a/tests/t_enable_mcsum_ext3/expect b/tests/t_enable_mcsum_ext3/expect
index 0f761a97d..11c5a26df 100644
--- a/tests/t_enable_mcsum_ext3/expect
+++ b/tests/t_enable_mcsum_ext3/expect
@@ -31,7 +31,7 @@ Change in FS metadata:
Default mount options: user_xattr acl
Filesystem state: clean
Errors behavior: Continue
-@@ -29,6 +29,7 @@
+@@ -30,6 +30,7 @@
Journal inode: 8
Default directory hash: half_md4
Journal backup: inode blocks
@@ -39,7 +39,7 @@ Change in FS metadata:
Journal features: (none)
Journal size: 16M
Journal length: 16384
-@@ -36,7 +37,7 @@
+@@ -37,7 +38,7 @@
Journal start: 0
@@ -48,7 +48,7 @@ Change in FS metadata:
Primary superblock at 1, Group descriptors at 2-3
Reserved GDT blocks at 4-259
Block bitmap at 260 (+259)
-@@ -45,7 +46,7 @@
+@@ -46,7 +47,7 @@
0 free blocks, 1013 free inodes, 2 directories
Free blocks:
Free inodes: 12-1024
@@ -57,7 +57,7 @@ Change in FS metadata:
Backup superblock at 8193, Group descriptors at 8194-8195
Reserved GDT blocks at 8196-8451
Block bitmap at 8452 (+259)
-@@ -54,6 +55,6 @@
+@@ -55,6 +56,6 @@
0 free blocks, 1024 free inodes, 0 directories
Free blocks:
Free inodes: 1025-2048
diff --git a/tests/t_enable_mcsum_initbg/expect b/tests/t_enable_mcsum_initbg/expect
index e05dd6031..a37648bf7 100644
--- a/tests/t_enable_mcsum_initbg/expect
+++ b/tests/t_enable_mcsum_initbg/expect
@@ -43,16 +43,16 @@ Change in FS metadata:
Default mount options: user_xattr acl
Filesystem state: clean
Errors behavior: Continue
-@@ -10,7 +10,7 @@
- Inode count: 65536
+@@ -11,7 +11,7 @@
Block count: 524288
Reserved block count: 26214
+ Overhead clusters: 35246
-Free blocks: 571
+Free blocks: 568
Free inodes: 65048
First block: 1
Block size: 1024
-@@ -33,6 +33,7 @@
+@@ -34,6 +34,7 @@
Journal inode: 8
Default directory hash: half_md4
Journal backup: inode blocks
@@ -60,7 +60,7 @@ Change in FS metadata:
Journal features: (none)
Journal size: 16M
Journal length: 16384
-@@ -40,24 +41,24 @@
+@@ -41,24 +42,24 @@
Journal start: 0
diff --git a/tests/t_iexpand_full/expect b/tests/t_iexpand_full/expect
index 3eb17151f..354818e26 100644
--- a/tests/t_iexpand_full/expect
+++ b/tests/t_iexpand_full/expect
@@ -20,13 +20,13 @@ tune2fs -I 256 test.img
Setting inode size 256
Exit status is 0
Change in FS metadata:
-@@ -13 +13 @@
+@@ -14 +14 @@
-Free blocks: 12301
+Free blocks: 12
-@@ -22 +22 @@
+@@ -23 +23 @@
-Inode blocks per group: 128
+Inode blocks per group: 256
-@@ -28 +28 @@
+@@ -29 +29 @@
-Inode size: 128
+Inode size: 256
Pass 1: Checking inodes, blocks, and sizes
diff --git a/tests/t_iexpand_mcsum/expect b/tests/t_iexpand_mcsum/expect
index 772bd6238..c24a24569 100644
--- a/tests/t_iexpand_mcsum/expect
+++ b/tests/t_iexpand_mcsum/expect
@@ -39,13 +39,13 @@ Change in FS metadata:
@@ -5 +5 @@
-Filesystem features: has_journal ext_attr dir_index filetype extent 64bit sparse_super large_file huge_file uninit_bg dir_nlink extra_isize
+Filesystem features: has_journal ext_attr dir_index filetype extent 64bit sparse_super large_file huge_file dir_nlink extra_isize metadata_csum
-@@ -21 +21 @@
+@@ -22 +22 @@
-Inode blocks per group: 128
+Inode blocks per group: 256
-@@ -27 +27 @@
+@@ -28 +28 @@
-Inode size: 128
+Inode size: 256
-@@ -30,0 +31 @@
+@@ -31,0 +32 @@
+Checksum type: crc32c
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure