From: Josef Bacik Date: Wed, 28 Apr 2021 17:38:46 +0000 (-0400) Subject: btrfs: don't include the global rsv size in the preemptive used amount X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=30acce4eb032251be4767ee393a7e6e9748259d6;p=linux.git btrfs: don't include the global rsv size in the preemptive used amount When deciding if we should preemptively flush space, we will add in the amount of space used by all block rsvs. However this also includes the global block rsv, which isn't flushable so shouldn't be accounted for in this calculation. If we decide to use ->bytes_may_use in our used calculation we need to subtract the global rsv size from this amount so it most closely matches the flushable space. Reviewed-by: Johannes Thumshirn Signed-off-by: Josef Bacik Signed-off-by: David Sterba --- diff --git a/fs/btrfs/space-info.c b/fs/btrfs/space-info.c index fedf3440145a2..0e88a1482624e 100644 --- a/fs/btrfs/space-info.c +++ b/fs/btrfs/space-info.c @@ -871,7 +871,7 @@ static bool need_preemptive_reclaim(struct btrfs_fs_info *fs_info, used += fs_info->delayed_refs_rsv.reserved + fs_info->delayed_block_rsv.reserved; else - used += space_info->bytes_may_use; + used += space_info->bytes_may_use - global_rsv_size; return (used >= thresh && !btrfs_fs_closing(fs_info) && !test_bit(BTRFS_FS_STATE_REMOUNTING, &fs_info->fs_state));