All of lore.kernel.org
 help / color / mirror / Atom feed
From: Matthew Wilcox <willy@infradead.org>
To: linux-fsdevel@vger.kernel.org, linux-mm@kvack.org,
	linux-kernel@vger.kernel.org
Cc: "Matthew Wilcox (Oracle)" <willy@infradead.org>
Subject: [PATCH 03/15] mm: Add file_offset_of_ helpers
Date: Tue, 24 Sep 2019 17:52:02 -0700	[thread overview]
Message-ID: <20190925005214.27240-4-willy@infradead.org> (raw)
In-Reply-To: <20190925005214.27240-1-willy@infradead.org>

From: "Matthew Wilcox (Oracle)" <willy@infradead.org>

The page_offset function is badly named for people reading the functions
which call it.  The natural meaning of a function with this name would
be 'offset within a page', not 'page offset in bytes within a file'.
Dave Chinner suggests file_offset_of_page() as a replacement function
name and I'm also adding file_offset_of_next_page() as a helper for the
large page work.  Also add kernel-doc for these functions so they show
up in the kernel API book.

page_offset() is retained as a compatibility define for now.
---
 drivers/net/ethernet/ibm/ibmveth.c |  2 --
 include/linux/pagemap.h            | 25 ++++++++++++++++++++++---
 2 files changed, 22 insertions(+), 5 deletions(-)

diff --git a/drivers/net/ethernet/ibm/ibmveth.c b/drivers/net/ethernet/ibm/ibmveth.c
index c5be4ebd8437..bf98aeaf9a45 100644
--- a/drivers/net/ethernet/ibm/ibmveth.c
+++ b/drivers/net/ethernet/ibm/ibmveth.c
@@ -978,8 +978,6 @@ static int ibmveth_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd)
 	return -EOPNOTSUPP;
 }
 
-#define page_offset(v) ((unsigned long)(v) & ((1 << 12) - 1))
-
 static int ibmveth_send(struct ibmveth_adapter *adapter,
 			union ibmveth_buf_desc *descs, unsigned long mss)
 {
diff --git a/include/linux/pagemap.h b/include/linux/pagemap.h
index 750770a2c685..103205494ea0 100644
--- a/include/linux/pagemap.h
+++ b/include/linux/pagemap.h
@@ -428,14 +428,33 @@ static inline pgoff_t page_to_pgoff(struct page *page)
 	return page_to_index(page);
 }
 
-/*
- * Return byte-offset into filesystem object for page.
+/**
+ * file_offset_of_page - File offset of this page.
+ * @page: Page cache page.
+ *
+ * Context: Any context.
+ * Return: The offset of the first byte of this page.
  */
-static inline loff_t page_offset(struct page *page)
+static inline loff_t file_offset_of_page(struct page *page)
 {
 	return ((loff_t)page->index) << PAGE_SHIFT;
 }
 
+/* Legacy; please convert callers */
+#define page_offset(page)	file_offset_of_page(page)
+
+/**
+ * file_offset_of_next_page - File offset of the next page.
+ * @page: Page cache page.
+ *
+ * Context: Any context.
+ * Return: The offset of the first byte after this page.
+ */
+static inline loff_t file_offset_of_next_page(struct page *page)
+{
+	return ((loff_t)page->index + compound_nr(page)) << PAGE_SHIFT;
+}
+
 static inline loff_t page_file_offset(struct page *page)
 {
 	return ((loff_t)page_index(page)) << PAGE_SHIFT;
-- 
2.23.0


  parent reply	other threads:[~2019-09-25  0:53 UTC|newest]

Thread overview: 44+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-09-25  0:51 [RFC 00/15] Large pages in the page-cache Matthew Wilcox
2019-09-25  0:52 ` [PATCH 01/15] mm: Use vm_fault error code directly Matthew Wilcox
2019-09-26 13:55   ` Kirill A. Shutemov
2019-09-25  0:52 ` [PATCH 02/15] fs: Introduce i_blocks_per_page Matthew Wilcox
2019-09-25  8:36   ` Dave Chinner
2019-10-04 19:28     ` Matthew Wilcox
2019-10-08  3:53       ` Dave Chinner
2019-09-25  0:52 ` Matthew Wilcox [this message]
2019-09-26 14:02   ` [PATCH 03/15] mm: Add file_offset_of_ helpers Kirill A. Shutemov
2019-10-04 19:39     ` Matthew Wilcox
2019-09-25  0:52 ` [PATCH 04/15] iomap: Support large pages Matthew Wilcox
2019-09-25  0:52 ` [PATCH 05/15] xfs: " Matthew Wilcox
2019-09-25  0:52 ` [PATCH 06/15] xfs: Pass a page to xfs_finish_page_writeback Matthew Wilcox
2019-09-25  0:52 ` [PATCH 07/15] mm: Make prep_transhuge_page tail-callable Matthew Wilcox
2019-09-26 14:13   ` Kirill A. Shutemov
2019-09-25  0:52 ` [PATCH 08/15] mm: Add __page_cache_alloc_order Matthew Wilcox
2019-09-26 14:15   ` Kirill A. Shutemov
2019-09-25  0:52 ` [PATCH 09/15] mm: Allow large pages to be added to the page cache Matthew Wilcox
2019-09-26 14:22   ` Kirill A. Shutemov
2019-09-25  0:52 ` [PATCH 10/15] mm: Allow find_get_page to be used for large pages Matthew Wilcox
2019-10-01 10:32   ` Kirill A. Shutemov
2019-09-25  0:52 ` [PATCH 11/15] mm: Remove hpage_nr_pages Matthew Wilcox
2019-10-01 10:35   ` Kirill A. Shutemov
2019-09-25  0:52 ` [PATCH 12/15] mm: Support removing arbitrary sized pages from mapping Matthew Wilcox
2019-10-01 10:39   ` Kirill A. Shutemov
2019-09-25  0:52 ` [PATCH 13/15] mm: Add a huge page fault handler for files Matthew Wilcox
2019-10-01 10:42   ` Kirill A. Shutemov
2019-09-25  0:52 ` [PATCH 14/15] mm: Align THP mappings for non-DAX Matthew Wilcox
2019-10-01 10:45   ` Kirill A. Shutemov
2019-10-01 11:21     ` William Kucharski
2019-10-01 11:32       ` Kirill A. Shutemov
2019-10-01 12:18         ` William Kucharski
2019-10-01 14:20           ` Kirill A. Shutemov
2019-10-01 16:08             ` William Kucharski
2019-10-02  0:15               ` Kirill A. Shutemov
2019-09-25  0:52 ` [PATCH 15/15] xfs: Use filemap_huge_fault Matthew Wilcox
2019-10-02 13:07 ` [PATCH 03/15] mm: Add file_offset_of_ helpers Hillf Danton
2019-10-04 19:33   ` Matthew Wilcox
2019-10-02 13:32 ` [PATCH 04/15] iomap: Support large pages Hillf Danton
2019-10-04 19:34   ` Matthew Wilcox
2019-10-03  4:08 ` [PATCH 06/15] xfs: Pass a page to xfs_finish_page_writeback Hillf Danton
2019-10-04 19:35   ` Matthew Wilcox
2019-10-03  5:08 ` [PATCH 11/15] mm: Remove hpage_nr_pages Hillf Danton
2019-10-04 19:36   ` Matthew Wilcox

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20190925005214.27240-4-willy@infradead.org \
    --to=willy@infradead.org \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.