]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
buffer: Use folio_next_pos()
authorMatthew Wilcox (Oracle) <willy@infradead.org>
Fri, 24 Oct 2025 17:08:11 +0000 (18:08 +0100)
committerChristian Brauner <brauner@kernel.org>
Fri, 31 Oct 2025 12:11:37 +0000 (13:11 +0100)
This is one instruction more efficient than open-coding folio_pos() +
folio_size().  It's the equivalent of (x + y) << z rather than
x << z + y << z.

Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org>
Link: https://patch.msgid.link/20251024170822.1427218-4-willy@infradead.org
Reviewed-by: Jan Kara <jack@suse.cz>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Cc: Jan Kara <jack@suse.cz>
Signed-off-by: Christian Brauner <brauner@kernel.org>
fs/buffer.c

index 6a8752f7bbedba06aa21d4cc15c3ec1913af85a5..185ceb0d6baa2690b92f04cd2f420f241526b692 100644 (file)
@@ -2732,7 +2732,7 @@ int block_write_full_folio(struct folio *folio, struct writeback_control *wbc,
        loff_t i_size = i_size_read(inode);
 
        /* Is the folio fully inside i_size? */
-       if (folio_pos(folio) + folio_size(folio) <= i_size)
+       if (folio_next_pos(folio) <= i_size)
                return __block_write_full_folio(inode, folio, get_block, wbc);
 
        /* Is the folio fully outside i_size? (truncate in progress) */