All of lore.kernel.org
 help / color / mirror / Atom feed
From: Nikolay Borisov <nborisov@suse.com>
To: linux-btrfs@vger.kernel.org
Cc: Nikolay Borisov <nborisov@suse.com>
Subject: [PATCH] btrfs: Opencode extent_read_full_page to its sole caller
Date: Mon, 14 Sep 2020 14:39:16 +0300	[thread overview]
Message-ID: <20200914113916.29852-1-nborisov@suse.com> (raw)
In-Reply-To: <20200914093711.13523-1-nborisov@suse.com>

This makes reading the code a tad easier by decreasing the level of
indirection by one.

Signed-off-by: Nikolay Borisov <nborisov@suse.com>
---
David,

Here is a followup patch based on Johaness' feedback if you could merge it
after having merged the whole series I'll much appreciated it.

 fs/btrfs/extent_io.c | 24 +++++-------------------
 fs/btrfs/extent_io.h |  5 +++--
 fs/btrfs/inode.c     |  9 +++++++--
 3 files changed, 15 insertions(+), 23 deletions(-)

diff --git a/fs/btrfs/extent_io.c b/fs/btrfs/extent_io.c
index 1ef857c0d784..afac70ef0cc5 100644
--- a/fs/btrfs/extent_io.c
+++ b/fs/btrfs/extent_io.c
@@ -3141,9 +3141,9 @@ __get_extent_map(struct inode *inode, struct page *page, size_t pg_offset,
  * XXX JDM: This needs looking at to ensure proper page locking
  * return 0 on success, otherwise return error
  */
-static int __do_readpage(struct page *page, struct extent_map **em_cached,
-			 struct bio **bio, unsigned long *bio_flags,
-			 unsigned int read_flags, u64 *prev_em_start)
+int btrfs_do_readpage(struct page *page, struct extent_map **em_cached,
+		      struct bio **bio, unsigned long *bio_flags,
+		      unsigned int read_flags, u64 *prev_em_start)
 {
 	struct inode *inode = page->mapping->host;
 	u64 start = page_offset(page);
@@ -3358,26 +3358,12 @@ static inline void contiguous_readpages(struct page *pages[], int nr_pages,
 	btrfs_lock_and_flush_ordered_range(inode, start, end, NULL);

 	for (index = 0; index < nr_pages; index++) {
-		__do_readpage(pages[index], em_cached, bio, bio_flags,
-			      REQ_RAHEAD, prev_em_start);
+		btrfs_do_readpage(pages[index], em_cached, bio, bio_flags,
+				  REQ_RAHEAD, prev_em_start);
 		put_page(pages[index]);
 	}
 }

-int extent_read_full_page(struct page *page, struct bio **bio,
-			  unsigned long *bio_flags)
-{
-	struct btrfs_inode *inode = BTRFS_I(page->mapping->host);
-	u64 start = page_offset(page);
-	u64 end = start + PAGE_SIZE - 1;
-	int ret;
-
-	btrfs_lock_and_flush_ordered_range(inode, start, end, NULL);
-
-	ret = __do_readpage(page, NULL, bio, bio_flags, 0, NULL);
-	return ret;
-}
-
 static void update_nr_written(struct writeback_control *wbc,
 			      unsigned long nr_written)
 {
diff --git a/fs/btrfs/extent_io.h b/fs/btrfs/extent_io.h
index 5fa248570145..3bbc25b816ea 100644
--- a/fs/btrfs/extent_io.h
+++ b/fs/btrfs/extent_io.h
@@ -195,8 +195,9 @@ int try_release_extent_buffer(struct page *page);

 int __must_check submit_one_bio(struct bio *bio, int mirror_num,
 				unsigned long bio_flags);
-int extent_read_full_page(struct page *page, struct bio **bio,
-			  unsigned long *bio_flags);
+int btrfs_do_readpage(struct page *page, struct extent_map **em_cached,
+		      struct bio **bio, unsigned long *bio_flags,
+		      unsigned int read_flags, u64 *prev_em_start);
 int extent_write_full_page(struct page *page, struct writeback_control *wbc);
 int extent_write_locked_range(struct inode *inode, u64 start, u64 end,
 			      int mode);
diff --git a/fs/btrfs/inode.c b/fs/btrfs/inode.c
index c50a907742a1..245c80aaf7a3 100644
--- a/fs/btrfs/inode.c
+++ b/fs/btrfs/inode.c
@@ -8040,11 +8040,16 @@ static int btrfs_fiemap(struct inode *inode, struct fiemap_extent_info *fieinfo,

 int btrfs_readpage(struct file *file, struct page *page)
 {
-	struct bio *bio = NULL;
+	struct btrfs_inode *inode = BTRFS_I(page->mapping->host);
+	u64 start = page_offset(page);
+	u64 end = start + PAGE_SIZE - 1;
 	unsigned long bio_flags = 0;
+	struct bio *bio = NULL;
 	int ret;

-	ret = extent_read_full_page(page, &bio, &bio_flags);
+	btrfs_lock_and_flush_ordered_range(inode, start, end, NULL);
+
+	ret = btrfs_do_readpage(page, NULL, &bio, &bio_flags, 0, NULL);
 	if (bio)
 		ret = submit_one_bio(bio, 0, bio_flags);
 	return ret;
--
2.17.1


  parent reply	other threads:[~2020-09-14 11:40 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-09-14  9:37 [PATCH v2 0/9] Cleanup metadata page reading path Nikolay Borisov
2020-09-14  9:37 ` [PATCH v2 1/9] btrfs: Remove btree_readpage Nikolay Borisov
2020-09-14 10:51   ` Qu Wenruo
2020-09-14  9:37 ` [PATCH v2 2/9] btrfs: Simplify metadata pages reading Nikolay Borisov
2020-09-14 11:01   ` Qu Wenruo
2020-09-14  9:37 ` [PATCH v2 3/9] btrfs: Remove btree_get_extent Nikolay Borisov
2020-09-14  9:37 ` [PATCH v2 4/9] btrfs: Remove btrfs_get_extent indirection from __do_readpage Nikolay Borisov
2020-09-14  9:37 ` [PATCH v2 5/9] btrfs: Remove mirror_num argument from extent_read_full_page Nikolay Borisov
2020-09-14  9:37 ` [PATCH v2 6/9] btrfs: Promote extent_read_full_page to btrfs_readpage Nikolay Borisov
2020-09-14  9:37 ` [PATCH v2 7/9] btrfs: Sink mirror_num argument in extent_read_full_page Nikolay Borisov
2020-09-14 10:35   ` Johannes Thumshirn
2020-09-14 10:38     ` Nikolay Borisov
2020-09-14  9:37 ` [PATCH v2 8/9] btrfs: Sink read_flags argument into extent_read_full_page Nikolay Borisov
2020-09-14  9:37 ` [PATCH v2 9/9] btrfs: Sink mirror_num argument in __do_readpage Nikolay Borisov
2020-09-14 10:39 ` [PATCH v2 0/9] Cleanup metadata page reading path Johannes Thumshirn
2020-09-14 11:39   ` Nikolay Borisov
2020-09-14 11:44     ` Johannes Thumshirn
2020-09-14 11:39 ` Nikolay Borisov [this message]
2020-09-14 11:45   ` [PATCH] btrfs: Opencode extent_read_full_page to its sole caller Johannes Thumshirn
2020-09-15  7:44   ` David Sterba
2020-09-15  7:43 ` [PATCH v2 0/9] Cleanup metadata page reading path David Sterba

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=20200914113916.29852-1-nborisov@suse.com \
    --to=nborisov@suse.com \
    --cc=linux-btrfs@vger.kernel.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.