• J
    Btrfs: wait for ordered extents if we didn't reclaim enough · 4b91c14f
    Josef Bacik 提交于
    I noticed recently that my overcommit patch was causing one of my enospc tests
    to fail 25% of the time with early ENOSPC.  This is because my overcommit patch
    was letting us go way over board, but it wasn't waiting long enough to let the
    delalloc shrinker do it's job.  The problem is we just start writeback and wait
    a little bit hoping we flush enough, but we only free up delalloc space by
    having the writes complete all the way.  We do this by waiting for ordered
    extents, which we do but only if we already free'd enough for the reservation,
    which isn't right, we should flush ordered extents if we didn't reclaim enough
    in case that will push us over the edge.  With this patch I've not seen a
    failure in this enospc test after running it in a loop for an hour.  Thanks,
    Signed-off-by: NJosef Bacik <josef@redhat.com>
    4b91c14f
extent-tree.c 196.7 KB