• Josef Bacik's avatar
    Btrfs: delete inline extents when we find them during logging · 124fe663
    Josef Bacik authored
    Apparently when we do inline extents we allow the data to overlap the last chunk
    of the btrfs_file_extent_item, which means that we can possibly have a
    btrfs_file_extent_item that isn't actually as large as a btrfs_file_extent_item.
    This messes with us when we try to overwrite the extent when logging new extents
    since we expect for it to be the right size.  To fix this just delete the item
    and try to do the insert again which will give us the proper sized
    btrfs_file_extent_item.  This fixes a panic where map_private_extent_buffer
    would blow up because we're trying to write past the end of the leaf.  Thanks,
    
    Cc: stable@vger.kernel.org
    Signed-off-by: default avatarJosef Bacik <jbacik@fusionio.com>
    124fe663
tree-log.c 109 KB