filemap: Add folio_next_pos()

Replace the open-coded implementation in ocfs2 (which loses the top
32 bits on 32-bit architectures) with a helper in pagemap.h.

Fixes: 35edec1d52 (ocfs2: update truncate handling of partial clusters)
Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org>
Link: https://patch.msgid.link/20251024170822.1427218-2-willy@infradead.org
Reviewed-by: Joseph Qi <joseph.qi@linux.alibaba.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Cc: Mark Fasheh <mark@fasheh.com>
Cc: Joel Becker <jlbec@evilplan.org>
Cc: Joseph Qi <joseph.qi@linux.alibaba.com>
Cc: ocfs2-devel@lists.linux.dev
Signed-off-by: Christian Brauner <brauner@kernel.org>
This commit is contained in:
Matthew Wilcox (Oracle) 2025-10-24 18:08:09 +01:00 committed by Christian Brauner
parent 3a86608788
commit 4511fd86db
No known key found for this signature in database
GPG Key ID: 91C61BC06578DCA2
2 changed files with 12 additions and 1 deletions

View File

@ -6892,7 +6892,7 @@ static void ocfs2_zero_cluster_folios(struct inode *inode, loff_t start,
ocfs2_map_and_dirty_folio(inode, handle, from, to, folio, 1, ocfs2_map_and_dirty_folio(inode, handle, from, to, folio, 1,
&phys); &phys);
start = folio_next_index(folio) << PAGE_SHIFT; start = folio_next_pos(folio);
} }
out: out:
if (folios) if (folios)

View File

@ -941,6 +941,17 @@ static inline pgoff_t folio_next_index(const struct folio *folio)
return folio->index + folio_nr_pages(folio); return folio->index + folio_nr_pages(folio);
} }
/**
* folio_next_pos - Get the file position of the next folio.
* @folio: The current folio.
*
* Return: The position of the folio which follows this folio in the file.
*/
static inline loff_t folio_next_pos(const struct folio *folio)
{
return (loff_t)folio_next_index(folio) << PAGE_SHIFT;
}
/** /**
* folio_file_page - The page for a particular index. * folio_file_page - The page for a particular index.
* @folio: The folio which contains this index. * @folio: The folio which contains this index.