diff options
Diffstat (limited to 'include/linux/pagemap.h')
| -rw-r--r-- | include/linux/pagemap.h | 12 | 
1 files changed, 12 insertions, 0 deletions
| diff --git a/include/linux/pagemap.h b/include/linux/pagemap.h index 0a97b583ee8d..e1474ae18c88 100644 --- a/include/linux/pagemap.h +++ b/include/linux/pagemap.h @@ -399,6 +399,18 @@ static inline struct page *read_mapping_page(struct address_space *mapping,  }  /* + * Get the offset in PAGE_SIZE. + * (TODO: hugepage should have ->index in PAGE_SIZE) + */ +static inline pgoff_t page_to_pgoff(struct page *page) +{ +	if (unlikely(PageHeadHuge(page))) +		return page->index << compound_order(page); +	else +		return page->index << (PAGE_CACHE_SHIFT - PAGE_SHIFT); +} + +/*   * Return byte-offset into filesystem object for page.   */  static inline loff_t page_offset(struct page *page) |