• Liu Bo's avatar
    Btrfs: make btrfs's allocation smoothly with preallocation · df57dbe6
    Liu Bo authored
    For backref walking, we've introduce delayed ref's sequence.  However,
    it changes our preallocation behavior.
    The story is that when we preallocate an extent and then mark it written
    piece by piece, the ideal case should be that we don't need to COW the
    extent, which is why we use 'preallocate'.
    But we may not make use of preallocation, since when we check for cross refs on
    the extent, we may have two ref entries which have the same content except
    the sequence value, and we recognize them as cross refs and do COW to allocate
    another extent.
    So we end up with several pieces of space instead of an whole extent.
    Signed-off-by: default avatarLiu Bo <liubo2009@cn.fujitsu.com>
    Signed-off-by: default avatarJosef Bacik <jbacik@fusionio.com>
extent-tree.c 214 KB