• Josef Bacik's avatar
    Btrfs: if we have a lot of pinned space, commit the transaction · 7e355b83
    Josef Bacik authored
    Mitch kept hitting a panic because he was getting ENOSPC.  One of my previous
    patches makes it so we are much better at not allocating new metadata chunks.
    Unfortunately coupled with the overcommit patch this works us into a bit of a
    problem if we are removing a bunch of space and end up chewing up all of our
    space with pinned extents.  We can allocate chunks fine and overflow is ok, but
    the only way to reclaim this space is to commit the transaction.  So if we go to
    overcommit, first check and see how much pinned space we have.  If we have more
    than 80% of the free space chewed up with pinned extents, just commit the
    transaction, this will free up enough space for our reservation and we won't
    have this problem anymore.  With this patch Mitch's test doesn't blow up
    anymore.  Thanks,
    Reported-and-tested-by: default avatarMitch Harder <mitch.harder@sabayonlinux.org>
    Signed-off-by: default avatarJosef Bacik <josef@redhat.com>
    7e355b83
extent-tree.c 197 KB