]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
btrfs: split assertion into two in extent_writepage_io()
authorFilipe Manana <fdmanana@suse.com>
Fri, 10 Oct 2025 16:17:10 +0000 (17:17 +0100)
committerDavid Sterba <dsterba@suse.com>
Mon, 24 Nov 2025 20:59:08 +0000 (21:59 +0100)
If the assertion fails we don't get to know which of the two expressions
failed and neither the values used in each expression.

So split the assertion into two, each for a single expression, so that
if any is triggered we see a line number reported in a stack trace that
points to which expression failed. Also  make the assertions use the
verbose mode to print the values involved in the computations.

Reviewed-by: Qu Wenruo <wqu@suse.com>
Reviewed-by: Anand Jain <asj@kernel.org>
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.c

index a8f75a4f89850e49850bf16f8438d2c4bd20acff..c741de16453563544ede0befcb3d94bd4d161d31 100644 (file)
@@ -1698,7 +1698,9 @@ static noinline_for_stack int extent_writepage_io(struct btrfs_inode *inode,
        int bit;
        int ret = 0;
 
-       ASSERT(start >= folio_start && end <= folio_end);
+       ASSERT(start >= folio_start, "start=%llu folio_start=%llu", start, folio_start);
+       ASSERT(end <= folio_end, "start=%llu len=%u folio_start=%llu folio_size=%zu",
+              start, len, folio_start, folio_size(folio));
 
        ret = btrfs_writepage_cow_fixup(folio);
        if (ret == -EAGAIN) {