]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
iomap: remove pos+len BUG_ON() to after folio lookup
authorBrian Foster <bfoster@redhat.com>
Fri, 3 Oct 2025 13:46:36 +0000 (09:46 -0400)
committerChristian Brauner <brauner@kernel.org>
Wed, 5 Nov 2025 11:57:24 +0000 (12:57 +0100)
The bug checks at the top of iomap_write_begin() assume the pos/len
reflect exactly the next range to process. This may no longer be the
case once the get folio path is able to process a folio batch from
the filesystem. On top of that, len is already trimmed to within the
iomap/srcmap by iomap_length(), so these checks aren't terribly
useful. Remove the unnecessary BUG_ON() checks.

Signed-off-by: Brian Foster <bfoster@redhat.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Darrick J. Wong <djwong@kernel.org>
Signed-off-by: Christian Brauner <brauner@kernel.org>
fs/iomap/buffered-io.c

index 1dbcac17fefd946aa5963435d3ee1184a9e1a61b..b5e85cd24360ccb9fc52ffc04bd4110380401d13 100644 (file)
@@ -826,15 +826,12 @@ static int iomap_write_begin(struct iomap_iter *iter,
                size_t *poffset, u64 *plen)
 {
        const struct iomap *srcmap = iomap_iter_srcmap(iter);
-       loff_t pos = iter->pos;
+       loff_t pos;
        u64 len = min_t(u64, SIZE_MAX, iomap_length(iter));
        struct folio *folio;
        int status = 0;
 
        len = min_not_zero(len, *plen);
-       BUG_ON(pos + len > iter->iomap.offset + iter->iomap.length);
-       if (srcmap != &iter->iomap)
-               BUG_ON(pos + len > srcmap->offset + srcmap->length);
 
        if (fatal_signal_pending(current))
                return -EINTR;