From 8e98899b2ffc43f151a21afb5bad85e80d6b6d85 Mon Sep 17 00:00:00 2001 From: "Darrick J. Wong" Date: Sun, 14 Dec 2014 21:09:29 -0500 Subject: [PATCH] resize2fs: use old_fs to detect per-bg metadata blocks to free When shrinking a filesystem, resize2fs wants to free per-bg metadata blocks that are no longer needed. This behavior is gated on whether there's a superblock in the group as told by new_fs. The check really should be against old_fs, since we're effectively freeing blocks out of old_fs in the transition to new_fs, but prior to sparse_super2 this didn't matter since superblocks didn't move, so it didn't matter. Under sparse_super2, however, there's a superblock in the last group, so now we need to change the test to use old_fs as it should. Signed-off-by: Darrick J. Wong Signed-off-by: Theodore Ts'o --- resize/resize2fs.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resize/resize2fs.c b/resize/resize2fs.c index 1415244..da1ec9c 100644 --- a/resize/resize2fs.c +++ b/resize/resize2fs.c @@ -1042,7 +1042,7 @@ static errcode_t blocks_to_move(ext2_resize_t rfs) } for (i = 0; i < max_groups; i++) { - if (!ext2fs_bg_has_super(fs, i)) { + if (!ext2fs_bg_has_super(old_fs, i)) { group_blk += fs->super->s_blocks_per_group; continue; } -- 1.8.3.1