From: Li Xi Date: Sun, 8 Sep 2019 08:15:35 +0000 (+0800) Subject: e2fsck: merge fs flags when threads finish X-Git-Tag: v1.46.6-wc1~69 X-Git-Url: https://git.whamcloud.com/tools/e2fsprogs.git/?a=commitdiff_plain;h=9543b2b7c0ec1b3cd6941e338178025639a13935;p=tools%2Fe2fsprogs.git e2fsck: merge fs flags when threads finish merge fs flags properly. E2fsprogs-commit: d4c0519725d59c9380acc828d24bc070c5bc2c03 Change-Id: I80c773bebc0e321bf2fe3b436c3f0e601b1f1b79 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 d651db2..ec999c7 100644 --- a/e2fsck/pass1.c +++ b/e2fsck/pass1.c @@ -2282,6 +2282,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; @@ -2289,6 +2290,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; @@ -2300,6 +2302,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);