• Josef Bacik's avatar
    Btrfs: add better -ENOSPC handling · 6a63209f
    Josef Bacik authored
    This is a step in the direction of better -ENOSPC handling.  Instead of
    checking the global bytes counter we check the space_info bytes counters to
    make sure we have enough space.
    If we don't we go ahead and try to allocate a new chunk, and then if that fails
    we return -ENOSPC.  This patch adds two counters to btrfs_space_info,
    bytes_delalloc and bytes_may_use.
    bytes_delalloc account for extents we've actually setup for delalloc and will
    be allocated at some point down the line. 
    bytes_may_use is to keep track of how many bytes we may use for delalloc at
    some point.  When we actually set the extent_bit for the delalloc bytes we
    subtract the reserved bytes from the bytes_may_use counter.  This keeps us from
    not actually being able to allocate space for any delalloc bytes.
    Signed-off-by: default avatarJosef Bacik <jbacik@redhat.com>
ctree.h 69.4 KB