• Chris Mason's avatar
    Btrfs: Delete csum items when freeing extents · 459931ec
    Chris Mason authored
    This finishes off the new checksumming code by removing csum items
    for extents that are no longer in use.
    The trick is doing it without racing because a single csum item may
    hold csums for more than one extent.  Extra checks are added to
    btrfs_csum_file_blocks to make sure that we are using the correct
    csum item after dropping locks.
    A new btrfs_split_item is added to split a single csum item so it
    can be split without dropping the leaf lock.  This is used to
    remove csum bytes from the middle of an item.
    Signed-off-by: default avatarChris Mason <chris.mason@oracle.com>