Whamcloud - gitweb
LU-8465 e2fsck: copy badblocks when copying fs 26/35726/6
authorWang Shilong <wshilong@ddn.com>
Wed, 9 Sep 2020 07:07:10 +0000 (15:07 +0800)
committerAndreas Dilger <adilger@whamcloud.com>
Fri, 25 Sep 2020 05:45:55 +0000 (05:45 +0000)
This patch copies badblocks when the copying fs.

Change-Id: I1fd600cdb0f01a1dc6f03cd3637f83d64b586698
Signed-off-by: Li Xi <lixi@ddn.com>
Signed-off-by: Wang Shilong <wshilong@ddn.com>
Reviewed-on: https://review.whamcloud.com/35726
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
Tested-by: Andreas Dilger <adilger@whamcloud.com>
e2fsck/pass1.c

index b02a9e1..a8a359d 100644 (file)
@@ -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;
 }