From e51f6bfe6d699e49cb8f8c8f3ae15db334077ac3 Mon Sep 17 00:00:00 2001 From: Li Xi Date: Sun, 8 Sep 2019 16:15:35 +0800 Subject: [PATCH] LU-8465 e2fsck: merge fs flags when threads finish merge fs flags properly. Change-Id: Ia8a3731d2710a725938a927ec3464cb028dd271b Signed-off-by: Li Xi Signed-off-by: Wang Shilong Reviewed-on: https://review.whamcloud.com/36098 Reviewed-by: Andreas Dilger Tested-by: Andreas Dilger --- e2fsck/pass1.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/e2fsck/pass1.c b/e2fsck/pass1.c index 3fac845..c1dc7a6 100644 --- a/e2fsck/pass1.c +++ b/e2fsck/pass1.c @@ -2492,6 +2492,7 @@ static int e2fsck_pass1_merge_fs(ext2_filsys dest, ext2_filsys src) ext2fs_block_bitmap block_map; ext2_badblocks_list badblocks; ext2_dblist dblist; + int flags; dest_io = dest->io; dest_image_io = dest->image_io; @@ -2499,6 +2500,7 @@ static int e2fsck_pass1_merge_fs(ext2_filsys dest, ext2_filsys src) block_map = dest->block_map; badblocks = dest->badblocks; dblist = dest->dblist; + flags = dest->flags; memcpy(dest, src, sizeof(struct struct_ext2_filsys)); dest->io = dest_io; @@ -2510,6 +2512,9 @@ static int e2fsck_pass1_merge_fs(ext2_filsys dest, ext2_filsys src) dest->dblist = dblist; if (dest->dblist) dest->dblist->fs = dest; + dest->flags = src->flags | flags; + if (!(src->flags & EXT2_FLAG_VALID) || !(flags & EXT2_FLAG_VALID)) + ext2fs_unmark_valid(dest); if (src->icache) { ext2fs_free_inode_cache(src->icache); -- 1.8.3.1