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.2.wc1~68 X-Git-Url: https://git.whamcloud.com/tools/e2fsprogs.git/?a=commitdiff_plain;h=bc78b5f419549a287abf58c4c702e14d05ee1eac;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 de36b2c..af141c0 100644 --- a/e2fsck/pass1.c +++ b/e2fsck/pass1.c @@ -2281,6 +2281,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; @@ -2288,6 +2289,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; @@ -2299,6 +2301,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);