]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
btrfs: simplify last record detection at btrfs_clear_extent_bit_changeset()
authorFilipe Manana <fdmanana@suse.com>
Wed, 9 Apr 2025 17:15:03 +0000 (18:15 +0100)
committerDavid Sterba <dsterba@suse.com>
Thu, 15 May 2025 12:30:51 +0000 (14:30 +0200)
Instead of checking for an end offset of (u64)-1 (U64_MAX) for the current
extent state's end, and then checking after updating the current start
offset if it's now beyond the range's end offset, we can simply stop if
the current extent state's end is greater than or equals to our range's
end offset. This helps remove one comparison under the 'next' label and
allows to remove the if statement that checks if the start offset is
greater than the end offset under the 'search_again' label.

Signed-off-by: Filipe Manana <fdmanana@suse.com>
Reviewed-by: David Sterba <dsterba@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
fs/btrfs/extent-io-tree.c

index 7a5c59b89173d629975c00bc0071c48656db787d..55334c616d6dcb7c4241d612af2bb89a256288e8 100644 (file)
@@ -734,15 +734,13 @@ hit_next:
 
        state = clear_state_bit(tree, state, bits, wake, changeset);
 next:
-       if (last_end == (u64)-1)
+       if (last_end >= end)
                goto out;
        start = last_end + 1;
-       if (start <= end && state && !need_resched())
+       if (state && !need_resched())
                goto hit_next;
 
 search_again:
-       if (start > end)
-               goto out;
        spin_unlock(&tree->lock);
        if (gfpflags_allow_blocking(mask))
                cond_resched();