From: Matthew Wilcox (Oracle) Date: Fri, 24 Oct 2025 17:08:18 +0000 (+0100) Subject: mm: Use folio_next_pos() X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=60a70e61430b2d568bc5e96f629c5855ee159ace;p=thirdparty%2Fkernel%2Flinux.git mm: Use folio_next_pos() 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) Link: https://patch.msgid.link/20251024170822.1427218-11-willy@infradead.org Reviewed-by: David Hildenbrand Reviewed-by: Christoph Hellwig Cc: Hugh Dickins Cc: Baolin Wang Cc: Andrew Morton Cc: linux-mm@kvack.org Signed-off-by: Christian Brauner --- diff --git a/mm/shmem.c b/mm/shmem.c index b9081b817d28f..c819cecf1ed9c 100644 --- a/mm/shmem.c +++ b/mm/shmem.c @@ -1133,7 +1133,7 @@ static void shmem_undo_range(struct inode *inode, loff_t lstart, loff_t lend, same_folio = (lstart >> PAGE_SHIFT) == (lend >> PAGE_SHIFT); folio = shmem_get_partial_folio(inode, lstart >> PAGE_SHIFT); if (folio) { - same_folio = lend < folio_pos(folio) + folio_size(folio); + same_folio = lend < folio_next_pos(folio); folio_mark_dirty(folio); if (!truncate_inode_partial_folio(folio, lstart, lend)) { start = folio_next_index(folio); diff --git a/mm/truncate.c b/mm/truncate.c index 91eb92a5ce4fd..a3d673533e32d 100644 --- a/mm/truncate.c +++ b/mm/truncate.c @@ -387,7 +387,7 @@ void truncate_inode_pages_range(struct address_space *mapping, same_folio = (lstart >> PAGE_SHIFT) == (lend >> PAGE_SHIFT); folio = __filemap_get_folio(mapping, lstart >> PAGE_SHIFT, FGP_LOCK, 0); if (!IS_ERR(folio)) { - same_folio = lend < folio_pos(folio) + folio_size(folio); + same_folio = lend < folio_next_pos(folio); if (!truncate_inode_partial_folio(folio, lstart, lend)) { start = folio_next_index(folio); if (same_folio)