btrfs: check ticket->steal in steal_from_global_block_rsv
authorJosef Bacik <josef@toxicpanda.com>
Tue, 9 Nov 2021 15:12:03 +0000 (10:12 -0500)
committerDavid Sterba <dsterba@suse.com>
Mon, 3 Jan 2022 14:09:45 +0000 (15:09 +0100)
We're going to use this helper in the priority flushing loop, move this
check into the helper to simplify the logic.

Reviewed-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 dd6509795532d1f9bca7a073dc4aacfa24c39236..20f6c0858410684ef45b970830e724edf0189edc 100644 (file)
@@ -844,6 +844,9 @@ static bool steal_from_global_rsv(struct btrfs_fs_info *fs_info,
        struct btrfs_block_rsv *global_rsv = &fs_info->global_block_rsv;
        u64 min_bytes;
 
+       if (!ticket->steal)
+               return false;
+
        if (global_rsv->space_info != space_info)
                return false;
 
@@ -899,8 +902,7 @@ static bool maybe_fail_all_tickets(struct btrfs_fs_info *fs_info,
                ticket = list_first_entry(&space_info->tickets,
                                          struct reserve_ticket, list);
 
-               if (!aborted && ticket->steal &&
-                   steal_from_global_rsv(fs_info, space_info, ticket))
+               if (!aborted && steal_from_global_rsv(fs_info, space_info, ticket))
                        return true;
 
                if (!aborted && btrfs_test_opt(fs_info, ENOSPC_DEBUG))