aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWang Shilong <wshilong@ddn.com>2020-09-09 15:07:10 +0800
committerTheodore Ts'o <tytso@mit.edu>2021-01-25 15:16:35 -0500
commit8095b716e15bb15a47925ae02cb1c06e91fdb651 (patch)
treed6ab20a3db60a8431efc443ed5dd5452180a1be8
parent4d47d0e84388bdf2242e09f9ba592ea778c1ba8e (diff)
downloade2fsprogs-8095b716e15bb15a47925ae02cb1c06e91fdb651.tar.gz
e2fsck: copy badblocks when copying fs
This patch copies badblocks when the copying fs. Signed-off-by: Li Xi <lixi@ddn.com> Signed-off-by: Wang Shilong <wshilong@ddn.com> Reviewed-by: Andreas Dilger <adilger@whamcloud.com> Signed-off-by: Theodore Ts'o <tytso@mit.edu>
-rw-r--r--e2fsck/pass1.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/e2fsck/pass1.c b/e2fsck/pass1.c
index 3a4286e12..14508dd82 100644
--- a/e2fsck/pass1.c
+++ b/e2fsck/pass1.c
@@ -2123,6 +2123,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;
@@ -2155,6 +2161,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;
}