diff options
author | Matthew Wilcox (Oracle) <willy@infradead.org> | 2021-04-27 23:11:28 -0400 |
---|---|---|
committer | Matthew Wilcox (Oracle) <willy@infradead.org> | 2021-10-18 07:49:40 -0400 |
commit | 9eb7c76dd31a53331bec795faaf7daa7ffb80071 (patch) | |
tree | e13b2aabb174b0d3902a11dbcbd171d98f946aa6 /include/linux/pagemap.h | |
parent | cd78ab11a8810dd297f4751d17cc53e3dce36024 (diff) |
mm/filemap: Add i_blocks_per_folio()
Reimplement i_blocks_per_page() as a wrapper around i_blocks_per_folio().
Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: David Howells <dhowells@redhat.com>
Acked-by: Vlastimil Babka <vbabka@suse.cz>
Diffstat (limited to 'include/linux/pagemap.h')
-rw-r--r-- | include/linux/pagemap.h | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/include/linux/pagemap.h b/include/linux/pagemap.h index 0dda6459d2d1..5431d9920dc0 100644 --- a/include/linux/pagemap.h +++ b/include/linux/pagemap.h @@ -1149,19 +1149,25 @@ static inline int page_mkwrite_check_truncate(struct page *page, } /** - * i_blocks_per_page - How many blocks fit in this page. + * i_blocks_per_folio - How many blocks fit in this folio. * @inode: The inode which contains the blocks. - * @page: The page (head page if the page is a THP). + * @folio: The folio. * - * If the block size is larger than the size of this page, return zero. + * If the block size is larger than the size of this folio, return zero. * - * Context: The caller should hold a refcount on the page to prevent it + * Context: The caller should hold a refcount on the folio to prevent it * from being split. - * Return: The number of filesystem blocks covered by this page. + * Return: The number of filesystem blocks covered by this folio. */ static inline +unsigned int i_blocks_per_folio(struct inode *inode, struct folio *folio) +{ + return folio_size(folio) >> inode->i_blkbits; +} + +static inline unsigned int i_blocks_per_page(struct inode *inode, struct page *page) { - return thp_size(page) >> inode->i_blkbits; + return i_blocks_per_folio(inode, page_folio(page)); } #endif /* _LINUX_PAGEMAP_H */ |