diff options
author | Wang Shilong <wshilong@ddn.com> | 2020-09-09 15:07:10 +0800 |
---|---|---|
committer | Theodore Ts'o <tytso@mit.edu> | 2021-01-25 15:16:35 -0500 |
commit | 8095b716e15bb15a47925ae02cb1c06e91fdb651 (patch) | |
tree | d6ab20a3db60a8431efc443ed5dd5452180a1be8 | |
parent | 4d47d0e84388bdf2242e09f9ba592ea778c1ba8e (diff) | |
download | e2fsprogs-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.c | 13 |
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; } |