From 219ffeb8d5f984248a2cee354fc5749b2e0c6cc8 Mon Sep 17 00:00:00 2001 From: Li Xi Date: Sun, 8 Sep 2019 16:15:35 +0800 Subject: [PATCH] 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 --- e2fsck/pass1.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/e2fsck/pass1.c b/e2fsck/pass1.c index 1c5bfc8..51bd664 100644 --- a/e2fsck/pass1.c +++ b/e2fsck/pass1.c @@ -2279,6 +2279,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; @@ -2286,6 +2287,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; @@ -2297,6 +2299,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