btrfs: allow to use up to 90% of the global block rsv for unlink
authorJosef Bacik <josef@toxicpanda.com>
Fri, 13 Mar 2020 19:58:06 +0000 (15:58 -0400)
committerDavid Sterba <dsterba@suse.com>
Mon, 25 May 2020 09:25:22 +0000 (11:25 +0200)
We previously had a limit of stealing 50% of the global reserve for
unlink.  This was from a time when the global reserve was used for the
delayed refs as well.  However now those reservations are kept separate,
so the global reserve can be depleted much more to allow us to make
progress for space restoring operations like unlink.  Change the minimum
amount of space required to be left in the global reserve to 10%.

Reviewed-by: Nikolay Borisov <nborisov@suse.com>
Tested-by: Nikolay Borisov <nborisov@suse.com>
Signed-off-by: Josef Bacik <josef@toxicpanda.com>
Reviewed-by: David Sterba <dsterba@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
fs/btrfs/space-info.c

index f5ec50e6c48eab586682a0d9b01837978813d3b1..3a49112ca0eaa83e70524320fd0d67b05302730c 100644 (file)
@@ -867,7 +867,7 @@ static bool steal_from_global_rsv(struct btrfs_fs_info *fs_info,
                return false;
 
        spin_lock(&global_rsv->lock);
-       min_bytes = div_factor(global_rsv->size, 5);
+       min_bytes = div_factor(global_rsv->size, 1);
        if (global_rsv->reserved < min_bytes + ticket->bytes) {
                spin_unlock(&global_rsv->lock);
                return false;