From 1d9178988c187efa610c97c36ee0d6c3d410f947 Mon Sep 17 00:00:00 2001 From: Wang Shilong Date: Wed, 9 Sep 2020 15:07:10 +0800 Subject: [PATCH] LU-8465 e2fsck: copy badblocks when copying fs This patch copies badblocks when the copying fs. Change-Id: I1fd600cdb0f01a1dc6f03cd3637f83d64b586698 Signed-off-by: Li Xi Signed-off-by: Wang Shilong Reviewed-on: https://review.whamcloud.com/35726 Reviewed-by: Andreas Dilger Tested-by: Andreas Dilger --- e2fsck/pass1.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/e2fsck/pass1.c b/e2fsck/pass1.c index b02a9e1..a8a359d 100644 --- a/e2fsck/pass1.c +++ b/e2fsck/pass1.c @@ -2381,6 +2381,12 @@ static errcode_t e2fsck_pass1_copy_fs(ext2_filsys dest, ext2_filsys src) return retval; } + if (src->badblocks) { + retval = ext2fs_badblocks_copy(src->badblocks, &dest->badblocks); + if (retval) + return retval; + } + /* icache will be rebuilt if needed, so do not copy from @src */ src->icache = NULL; return 0; @@ -2413,6 +2419,13 @@ static int e2fsck_pass1_merge_fs(ext2_filsys dest, ext2_filsys src) src->icache = NULL; } + if (src->badblocks) { + retval = ext2fs_badblocks_copy(src->badblocks, &dest->badblocks); + + ext2fs_badblocks_list_free(src->badblocks); + src->badblocks = NULL; + } + return retval; } -- 1.8.3.1