• Josef Bacik's avatar
    Btrfs: exclude logged extents before replying when we are mixed · 8c2a1a30
    Josef Bacik authored
    With non-mixed block groups we replay the logs before we're allowed to do any
    writes, so we get away with not pinning/removing the data extents until right
    when we replay them.  However with mixed block groups we allocate out of the
    same pool, so we could easily allocate a metadata block that was logged in our
    tree log.  To deal with this we just need to notice that we have mixed block
    groups and do the normal excluding/removal dance during the pin stage of the log
    replay and that way we don't allocate metadata blocks from areas we have logged
    data extents.  With this patch we now pass xfstests generic/311 with mixed
    block groups turned on.  Thanks,
    Signed-off-by: default avatarJosef Bacik <jbacik@fusionio.com>
    8c2a1a30
extent-tree.c 231 KB