From: David Sterba <dsterba@suse.com>
To: linux-btrfs@vger.kernel.org
Cc: David Sterba <dsterba@suse.com>
Subject: [PATCH 4/8] btrfs: drop argument tree from btrfs_lock_and_flush_ordered_range
Date: Wed, 5 Feb 2020 19:09:33 +0100 [thread overview]
Message-ID: <21ce9d3caeb6e8f303f3a1322a0728ece99d5bab.1580925977.git.dsterba@suse.com> (raw)
In-Reply-To: <cover.1580925977.git.dsterba@suse.com>
The tree pointer can be safely read from the inode so we can drop the
redundant argument from btrfs_lock_and_flush_ordered_range.
Signed-off-by: David Sterba <dsterba@suse.com>
---
fs/btrfs/extent_io.c | 4 ++--
fs/btrfs/file.c | 2 +-
fs/btrfs/inode.c | 2 +-
fs/btrfs/ordered-data.c | 10 +++-------
fs/btrfs/ordered-data.h | 3 +--
5 files changed, 8 insertions(+), 13 deletions(-)
diff --git a/fs/btrfs/extent_io.c b/fs/btrfs/extent_io.c
index e9d116ecf5a1..a0a80a151085 100644
--- a/fs/btrfs/extent_io.c
+++ b/fs/btrfs/extent_io.c
@@ -3294,7 +3294,7 @@ static inline void contiguous_readpages(struct extent_io_tree *tree,
ASSERT(tree == &inode->io_tree);
- btrfs_lock_and_flush_ordered_range(tree, inode, start, end, NULL);
+ btrfs_lock_and_flush_ordered_range(inode, start, end, NULL);
for (index = 0; index < nr_pages; index++) {
__do_readpage(tree, pages[index], btrfs_get_extent, em_cached,
@@ -3317,7 +3317,7 @@ static int __extent_read_full_page(struct extent_io_tree *tree,
ASSERT(tree == &inode->io_tree);
- btrfs_lock_and_flush_ordered_range(tree, inode, start, end, NULL);
+ btrfs_lock_and_flush_ordered_range(inode, start, end, NULL);
ret = __do_readpage(tree, page, get_extent, NULL, bio, mirror_num,
bio_flags, read_flags, NULL);
diff --git a/fs/btrfs/file.c b/fs/btrfs/file.c
index 746d569d234e..b03651ea1896 100644
--- a/fs/btrfs/file.c
+++ b/fs/btrfs/file.c
@@ -1560,7 +1560,7 @@ static noinline int check_can_nocow(struct btrfs_inode *inode, loff_t pos,
lockend = round_up(pos + *write_bytes,
fs_info->sectorsize) - 1;
- btrfs_lock_and_flush_ordered_range(&inode->io_tree, inode, lockstart,
+ btrfs_lock_and_flush_ordered_range(inode, lockstart,
lockend, NULL);
num_bytes = lockend - lockstart + 1;
diff --git a/fs/btrfs/inode.c b/fs/btrfs/inode.c
index 5c897d8c9506..29b06c109137 100644
--- a/fs/btrfs/inode.c
+++ b/fs/btrfs/inode.c
@@ -4611,7 +4611,7 @@ int btrfs_cont_expand(struct inode *inode, loff_t oldsize, loff_t size)
if (size <= hole_start)
return 0;
- btrfs_lock_and_flush_ordered_range(io_tree, BTRFS_I(inode), hole_start,
+ btrfs_lock_and_flush_ordered_range(BTRFS_I(inode), hole_start,
block_end - 1, &cached_state);
cur_offset = hole_start;
while (1) {
diff --git a/fs/btrfs/ordered-data.c b/fs/btrfs/ordered-data.c
index ad471a2fba93..d3f2f274e28d 100644
--- a/fs/btrfs/ordered-data.c
+++ b/fs/btrfs/ordered-data.c
@@ -830,7 +830,6 @@ int btrfs_find_ordered_sum(struct inode *inode, u64 offset, u64 disk_bytenr,
* btrfs_flush_ordered_range - Lock the passed range and ensures all pending
* ordered extents in it are run to completion.
*
- * @tree: IO tree used for locking out other users of the range
* @inode: Inode whose ordered tree is to be searched
* @start: Beginning of range to flush
* @end: Last byte of range to lock
@@ -840,8 +839,7 @@ int btrfs_find_ordered_sum(struct inode *inode, u64 offset, u64 disk_bytenr,
* This function always returns with the given range locked, ensuring after it's
* called no order extent can be pending.
*/
-void btrfs_lock_and_flush_ordered_range(struct extent_io_tree *tree,
- struct btrfs_inode *inode, u64 start,
+void btrfs_lock_and_flush_ordered_range(struct btrfs_inode *inode, u64 start,
u64 end,
struct extent_state **cached_state)
{
@@ -849,13 +847,11 @@ void btrfs_lock_and_flush_ordered_range(struct extent_io_tree *tree,
struct extent_state *cache = NULL;
struct extent_state **cachedp = &cache;
- ASSERT(tree == &inode->io_tree);
-
if (cached_state)
cachedp = cached_state;
while (1) {
- lock_extent_bits(tree, start, end, cachedp);
+ lock_extent_bits(&inode->io_tree, start, end, cachedp);
ordered = btrfs_lookup_ordered_range(inode, start,
end - start + 1);
if (!ordered) {
@@ -868,7 +864,7 @@ void btrfs_lock_and_flush_ordered_range(struct extent_io_tree *tree,
refcount_dec(&cache->refs);
break;
}
- unlock_extent_cached(tree, start, end, cachedp);
+ unlock_extent_cached(&inode->io_tree, start, end, cachedp);
btrfs_start_ordered_extent(&inode->vfs_inode, ordered, 1);
btrfs_put_ordered_extent(ordered);
}
diff --git a/fs/btrfs/ordered-data.h b/fs/btrfs/ordered-data.h
index a46f319d9ae0..c01c9698250b 100644
--- a/fs/btrfs/ordered-data.h
+++ b/fs/btrfs/ordered-data.h
@@ -183,8 +183,7 @@ u64 btrfs_wait_ordered_extents(struct btrfs_root *root, u64 nr,
const u64 range_start, const u64 range_len);
void btrfs_wait_ordered_roots(struct btrfs_fs_info *fs_info, u64 nr,
const u64 range_start, const u64 range_len);
-void btrfs_lock_and_flush_ordered_range(struct extent_io_tree *tree,
- struct btrfs_inode *inode, u64 start,
+void btrfs_lock_and_flush_ordered_range(struct btrfs_inode *inode, u64 start,
u64 end,
struct extent_state **cached_state);
int __init ordered_data_init(void);
--
2.25.0
next prev parent reply other threads:[~2020-02-05 18:09 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-02-05 18:09 [PATCH 0/8] Cleanup io_tree arguments in extent read/write path David Sterba
2020-02-05 18:09 ` [PATCH 1/8] btrfs: remove extent_page_data::tree David Sterba
2020-02-06 8:34 ` Anand Jain
2020-02-06 13:32 ` Johannes Thumshirn
2020-02-05 18:09 ` [PATCH 2/8] btrfs: drop argument tree from submit_extent_page David Sterba
2020-02-06 5:58 ` Anand Jain
2020-02-06 13:47 ` David Sterba
2020-02-11 5:00 ` Anand Jain
2020-02-06 13:33 ` Johannes Thumshirn
2020-02-05 18:09 ` [PATCH 3/8] btrfs: add assertions for tree == inode->io_tree to extent IO helpers David Sterba
2020-02-06 13:34 ` Johannes Thumshirn
2020-02-05 18:09 ` David Sterba [this message]
2020-02-06 13:38 ` [PATCH 4/8] btrfs: drop argument tree from btrfs_lock_and_flush_ordered_range Johannes Thumshirn
2020-02-05 18:09 ` [PATCH 5/8] btrfs: sink argument tree to extent_read_full_page David Sterba
2020-02-06 13:40 ` Johannes Thumshirn
2020-02-05 18:09 ` [PATCH 6/8] btrfs: sink argument tree to __extent_read_full_page David Sterba
2020-02-06 13:40 ` Johannes Thumshirn
2020-02-05 18:09 ` [PATCH 7/8] btrfs: sink arugment tree to contiguous_readpages David Sterba
2020-02-06 13:42 ` Johannes Thumshirn
2020-02-05 18:09 ` [PATCH 8/8] btrfs: sink argument tree to __do_readpage David Sterba
2020-02-06 13:43 ` Johannes Thumshirn
2020-02-06 13:24 ` [PATCH 0/8] Cleanup io_tree arguments in extent read/write path Nikolay Borisov
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=21ce9d3caeb6e8f303f3a1322a0728ece99d5bab.1580925977.git.dsterba@suse.com \
--to=dsterba@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox