mirror of
https://github.com/torvalds/linux.git
synced 2026-05-26 08:02:27 +02:00
fs: Turn page_offset() into a wrapper around folio_pos()
This is far less efficient for the lagging filesystems which still use page_offset(), but it removes an access to page->index. It also fixes a bug -- if any filesystem passed a tail page to page_offset(), it would return garbage which might result in the filesystem choosing to not writeback a dirty page. There probably aren't any examples of this, but I can't be certain. Signed-off-by: "Matthew Wilcox (Oracle)" <willy@infradead.org> Link: https://lore.kernel.org/r/20250221203932.3588740-1-willy@infradead.org Signed-off-by: Christian Brauner <brauner@kernel.org>
This commit is contained in:
parent
d1c735d44c
commit
12851bd921
|
|
@ -1044,21 +1044,23 @@ static inline pgoff_t page_pgoff(const struct folio *folio,
|
|||
return folio->index + folio_page_idx(folio, page);
|
||||
}
|
||||
|
||||
/**
|
||||
* folio_pos - Returns the byte position of this folio in its file.
|
||||
* @folio: The folio.
|
||||
*/
|
||||
static inline loff_t folio_pos(const struct folio *folio)
|
||||
{
|
||||
return ((loff_t)folio->index) * PAGE_SIZE;
|
||||
}
|
||||
|
||||
/*
|
||||
* Return byte-offset into filesystem object for page.
|
||||
*/
|
||||
static inline loff_t page_offset(struct page *page)
|
||||
{
|
||||
return ((loff_t)page->index) << PAGE_SHIFT;
|
||||
}
|
||||
struct folio *folio = page_folio(page);
|
||||
|
||||
/**
|
||||
* folio_pos - Returns the byte position of this folio in its file.
|
||||
* @folio: The folio.
|
||||
*/
|
||||
static inline loff_t folio_pos(struct folio *folio)
|
||||
{
|
||||
return page_offset(&folio->page);
|
||||
return folio_pos(folio) + folio_page_idx(folio, page) * PAGE_SIZE;
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user