• Qu Wenruo's avatar
    btrfs: reset this_bio_flag to avoid inheriting old flags · 4c37a793
    Qu Wenruo authored
    
    
    In btrfs_do_readpage(), we never reset @this_bio_flag after we hit a
    compressed extent.
    
    This is fine, as for PAGE_SIZE == sectorsize case, we can only have one
    sector for one page, thus @this_bio_flag will only be set at most once.
    
    But for subpage case, after hitting a compressed extent, @this_bio_flag
    will always have EXTENT_BIO_COMPRESSED bit, even we're reading a regular
    extent.
    
    This will lead to various read errors, and causing new ASSERT() in
    incoming subpage patches, which adds more strict check in
    btrfs_submit_compressed_read().
    
    Fix it by declaring @this_bio_flag inside the main loop and reset its
    value for each iteration.
    Reviewed-by: default avatarAnand Jain <anand.jain@oracle.com>
    Signed-off-by: default avatarQu Wenruo <wqu@suse.com>
    Signed-off-by: default avatarDavid Sterba <dsterba@suse.com>
    4c37a793
extent_io.c 189 KB