]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
fuse: remove page alignment check for writeback len
authorJoanne Koong <joannelkoong@gmail.com>
Wed, 23 Jul 2025 23:08:50 +0000 (16:08 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Mon, 28 Jul 2025 23:14:18 +0000 (16:14 -0700)
Remove incorrect page alignment check for the writeback len arg in
fuse_iomap_writeback_range().  len will always be block-aligned as
passed in by iomap.

On regular fuse filesystems, i_blkbits is set to PAGE_SHIFT so this is
not a problem but for fuseblk filesystems, the block size is set to a
default of 512 bytes or a block size passed in at mount time.

Please note that non-page-aligned lengths are fine for the logic in
fuse_iomap_writeback_range().  The check was originally added as a
safeguard to detect conspicuously wrong ranges.

Signed-off-by: Joanne Koong <joannelkoong@gmail.com>
Fixes: ef7e7cbb323f ("fuse: use iomap for writeback")
Reported-by: Linux Kernel Functional Testing <lkft@linaro.org>
Link: https://lore.kernel.org/linux-fsdevel/CA+G9fYs5AdVM-T2Tf3LciNCwLZEHetcnSkHsjZajVwwpM2HmJw@mail.gmail.com/
Reported-by: Sasha Levin <sashal@kernel.org>
Reviewed-by: Darrick J. Wong <djwong@kernel.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
fs/fuse/file.c

index 617fd1b562fdc99f6b97c8ecb42a2f2475664016..95275a1e2f54d424f460a97102eb9c9c5e5ca467 100644 (file)
@@ -2154,8 +2154,6 @@ static ssize_t fuse_iomap_writeback_range(struct iomap_writepage_ctx *wpc,
        loff_t offset = offset_in_folio(folio, pos);
 
        WARN_ON_ONCE(!data);
-       /* len will always be page aligned */
-       WARN_ON_ONCE(len & (PAGE_SIZE - 1));
 
        if (!data->ff) {
                data->ff = fuse_write_file_get(fi);