]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
mm: Use folio_next_pos()
authorMatthew Wilcox (Oracle) <willy@infradead.org>
Fri, 24 Oct 2025 17:08:18 +0000 (18:08 +0100)
committerChristian Brauner <brauner@kernel.org>
Fri, 31 Oct 2025 12:11:38 +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-11-willy@infradead.org
Reviewed-by: David Hildenbrand <david@redhat.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Cc: Hugh Dickins <hughd@google.com>
Cc: Baolin Wang <baolin.wang@linux.alibaba.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: linux-mm@kvack.org
Signed-off-by: Christian Brauner <brauner@kernel.org>
mm/shmem.c
mm/truncate.c

index b9081b817d28f3db1fbdd90ed3f04b6904d6ff18..c819cecf1ed9c7894f5f5fcd15a55ec6cc227c1c 100644 (file)
@@ -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);
index 91eb92a5ce4fdcf110a3fdbc2abfaefe532a42fa..a3d673533e32d744843d5311afc05724a50a11c5 100644 (file)
@@ -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)