Whamcloud - gitweb
e2fsck: merge fs flags when threads finish
[tools/e2fsprogs.git] / e2fsck / pass1.c
index d651db2..ec999c7 100644 (file)
@@ -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);