• Chris Mason's avatar
    Btrfs: Do metadata checksums for reads via a workqueue · ce9adaa5
    Chris Mason authored
    Before, metadata checksumming was done by the callers of read_tree_block,
    which would set EXTENT_CSUM bits in the extent tree to show that a given
    range of pages was already checksummed and didn't need to be verified
    again.
    
    But, those bits could go away via try_to_releasepage, and the end
    result was bogus checksum failures on pages that never left the cache.
    
    The new code validates checksums when the page is read.  It is a little
    tricky because metadata blocks can span pages and a single read may
    end up going via multiple bios.
    Signed-off-by: default avatarChris Mason <chris.mason@oracle.com>
    ce9adaa5
ctree.c 72.2 KB