From: Wang Shilong Date: Wed, 9 Sep 2020 07:07:10 +0000 (+0800) Subject: e2fsck: copy badblocks when copying fs X-Git-Tag: v1.47.1-wc1~93 X-Git-Url: https://git.whamcloud.com/?a=commitdiff_plain;h=8796a35998b87f64bea015a978ce7e421942c718;p=tools%2Fe2fsprogs.git e2fsck: copy badblocks when copying fs This patch copies badblocks when the copying fs. E2fsprogs-commit: 8095b716e15bb15a47925ae02cb1c06e91fdb651 Change-Id: Ibf5718ad5851a9ccd853a2a1f928bce447aa5de9 Signed-off-by: Li Xi Signed-off-by: Wang Shilong Reviewed-by: Andreas Dilger Signed-off-by: Theodore Ts'o --- diff --git a/e2fsck/pass1.c b/e2fsck/pass1.c index 0a11147..40fdff6 100644 --- a/e2fsck/pass1.c +++ b/e2fsck/pass1.c @@ -2249,6 +2249,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; @@ -2281,6 +2287,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; }