All of lore.kernel.org
 help / color / mirror / Atom feed
From: Josef Bacik <josef@toxicpanda.com>
To: linux-btrfs@vger.kernel.org, kernel-team@fb.com
Subject: [PATCH v2 28/36] btrfs: remove failed_start argument from set_extent_bit
Date: Fri,  9 Sep 2022 17:53:41 -0400	[thread overview]
Message-ID: <f2272d293dde46d0e5950c2328120721b1d5f452.1662760286.git.josef@toxicpanda.com> (raw)
In-Reply-To: <cover.1662760286.git.josef@toxicpanda.com>

This is only used for internal locking related helpers, everybody else
just passes in NULL.  I've changed set_extent_bit to __set_extent_bit
and made it static, removed failed_start from set_extent_bit and have it
call __set_extent_bit with a NULL failed_start, and I've moved some code
down below the now static __set_extent_bit.

Signed-off-by: Josef Bacik <josef@toxicpanda.com>
---
 fs/btrfs/extent-io-tree.c | 30 +++++++++++++++++++-----------
 fs/btrfs/extent-io-tree.h | 22 +++++++++-------------
 fs/btrfs/inode.c          |  4 ++--
 3 files changed, 30 insertions(+), 26 deletions(-)

diff --git a/fs/btrfs/extent-io-tree.c b/fs/btrfs/extent-io-tree.c
index a870e74f9c6c..7d6e0e748238 100644
--- a/fs/btrfs/extent-io-tree.c
+++ b/fs/btrfs/extent-io-tree.c
@@ -956,10 +956,10 @@ bool btrfs_find_delalloc_range(struct extent_io_tree *tree, u64 *start,
  *
  * [start, end] is inclusive This takes the tree lock.
  */
-int set_extent_bit(struct extent_io_tree *tree, u64 start, u64 end,
-		   u32 bits, u64 *failed_start,
-		   struct extent_state **cached_state, gfp_t mask,
-		   struct extent_changeset *changeset)
+static int __set_extent_bit(struct extent_io_tree *tree, u64 start, u64 end,
+			    u32 bits, u64 *failed_start,
+			    struct extent_state **cached_state,
+			    struct extent_changeset *changeset, gfp_t mask)
 {
 	struct extent_state *state;
 	struct extent_state *prealloc = NULL;
@@ -1172,6 +1172,14 @@ int set_extent_bit(struct extent_io_tree *tree, u64 start, u64 end,
 
 }
 
+int set_extent_bit(struct extent_io_tree *tree, u64 start, u64 end,
+		   u32 bits, struct extent_state **cached_state, gfp_t mask,
+		   struct extent_changeset *changeset)
+{
+	return __set_extent_bit(tree, start, end, bits, NULL, cached_state,
+				changeset, mask);
+}
+
 /**
  * convert_extent_bit - convert all bits in a given range from one bit to
  * 			another
@@ -1610,8 +1618,8 @@ int set_record_extent_bits(struct extent_io_tree *tree, u64 start, u64 end,
 	 */
 	ASSERT(!(bits & EXTENT_LOCKED));
 
-	return set_extent_bit(tree, start, end, bits, NULL, NULL, GFP_NOFS,
-			      changeset);
+	return __set_extent_bit(tree, start, end, bits, NULL, NULL, changeset,
+				GFP_NOFS);
 }
 
 int clear_record_extent_bits(struct extent_io_tree *tree, u64 start, u64 end,
@@ -1632,8 +1640,8 @@ int try_lock_extent(struct extent_io_tree *tree, u64 start, u64 end)
 	int err;
 	u64 failed_start;
 
-	err = set_extent_bit(tree, start, end, EXTENT_LOCKED, &failed_start,
-			     NULL, GFP_NOFS, NULL);
+	err = __set_extent_bit(tree, start, end, EXTENT_LOCKED, &failed_start,
+			       NULL, NULL, GFP_NOFS);
 	if (err == -EEXIST) {
 		if (failed_start > start)
 			clear_extent_bit(tree, start, failed_start - 1,
@@ -1654,9 +1662,9 @@ int lock_extent_bits(struct extent_io_tree *tree, u64 start, u64 end,
 	u64 failed_start;
 
 	while (1) {
-		err = set_extent_bit(tree, start, end, EXTENT_LOCKED,
-				     &failed_start, cached_state, GFP_NOFS,
-				     NULL);
+		err = __set_extent_bit(tree, start, end, EXTENT_LOCKED,
+				       &failed_start, cached_state, NULL,
+				       GFP_NOFS);
 		if (err == -EEXIST) {
 			wait_extent_bit(tree, failed_start, end, EXTENT_LOCKED);
 			start = failed_start;
diff --git a/fs/btrfs/extent-io-tree.h b/fs/btrfs/extent-io-tree.h
index bd3c345a7530..991bfa3a8391 100644
--- a/fs/btrfs/extent-io-tree.h
+++ b/fs/btrfs/extent-io-tree.h
@@ -160,22 +160,19 @@ static inline int clear_extent_bits(struct extent_io_tree *tree, u64 start,
 int set_record_extent_bits(struct extent_io_tree *tree, u64 start, u64 end,
 			   u32 bits, struct extent_changeset *changeset);
 int set_extent_bit(struct extent_io_tree *tree, u64 start, u64 end,
-		   u32 bits, u64 *failed_start,
-		   struct extent_state **cached_state, gfp_t mask,
+		   u32 bits, struct extent_state **cached_state, gfp_t mask,
 		   struct extent_changeset *changeset);
 
 static inline int set_extent_bits_nowait(struct extent_io_tree *tree, u64 start,
 					 u64 end, u32 bits)
 {
-	return set_extent_bit(tree, start, end, bits, NULL, NULL, GFP_NOWAIT,
-			      NULL);
+	return set_extent_bit(tree, start, end, bits, NULL, GFP_NOWAIT, NULL);
 }
 
 static inline int set_extent_bits(struct extent_io_tree *tree, u64 start,
 		u64 end, u32 bits)
 {
-	return set_extent_bit(tree, start, end, bits, NULL, NULL, GFP_NOFS,
-			      NULL);
+	return set_extent_bit(tree, start, end, bits, NULL, GFP_NOFS, NULL);
 }
 
 static inline int clear_extent_uptodate(struct extent_io_tree *tree, u64 start,
@@ -188,8 +185,7 @@ static inline int clear_extent_uptodate(struct extent_io_tree *tree, u64 start,
 static inline int set_extent_dirty(struct extent_io_tree *tree, u64 start,
 		u64 end, gfp_t mask)
 {
-	return set_extent_bit(tree, start, end, EXTENT_DIRTY, NULL, NULL, mask,
-			      NULL);
+	return set_extent_bit(tree, start, end, EXTENT_DIRTY, NULL, mask, NULL);
 }
 
 static inline int clear_extent_dirty(struct extent_io_tree *tree, u64 start,
@@ -210,7 +206,7 @@ static inline int set_extent_delalloc(struct extent_io_tree *tree, u64 start,
 {
 	return set_extent_bit(tree, start, end,
 			      EXTENT_DELALLOC | extra_bits,
-			      NULL, cached_state, GFP_NOFS, NULL);
+			      cached_state, GFP_NOFS, NULL);
 }
 
 static inline int set_extent_defrag(struct extent_io_tree *tree, u64 start,
@@ -218,20 +214,20 @@ static inline int set_extent_defrag(struct extent_io_tree *tree, u64 start,
 {
 	return set_extent_bit(tree, start, end,
 			      EXTENT_DELALLOC | EXTENT_DEFRAG,
-			      NULL, cached_state, GFP_NOFS, NULL);
+			      cached_state, GFP_NOFS, NULL);
 }
 
 static inline int set_extent_new(struct extent_io_tree *tree, u64 start,
 		u64 end)
 {
-	return set_extent_bit(tree, start, end, EXTENT_NEW, NULL, NULL,
-			      GFP_NOFS, NULL);
+	return set_extent_bit(tree, start, end, EXTENT_NEW, NULL, GFP_NOFS,
+			      NULL);
 }
 
 static inline int set_extent_uptodate(struct extent_io_tree *tree, u64 start,
 		u64 end, struct extent_state **cached_state, gfp_t mask)
 {
-	return set_extent_bit(tree, start, end, EXTENT_UPTODATE, NULL,
+	return set_extent_bit(tree, start, end, EXTENT_UPTODATE,
 			      cached_state, mask, NULL);
 }
 
diff --git a/fs/btrfs/inode.c b/fs/btrfs/inode.c
index 77060eb7e848..ff2eae4474e5 100644
--- a/fs/btrfs/inode.c
+++ b/fs/btrfs/inode.c
@@ -2815,7 +2815,7 @@ static int btrfs_find_new_delalloc_bytes(struct btrfs_inode *inode,
 
 		ret = set_extent_bit(&inode->io_tree, search_start,
 				     search_start + em_len - 1,
-				     EXTENT_DELALLOC_NEW, NULL, cached_state,
+				     EXTENT_DELALLOC_NEW, cached_state,
 				     GFP_NOFS, NULL);
 next:
 		search_start = extent_map_end(em);
@@ -4962,7 +4962,7 @@ int btrfs_truncate_block(struct btrfs_inode *inode, loff_t from, loff_t len,
 
 	if (only_release_metadata)
 		set_extent_bit(&inode->io_tree, block_start, block_end,
-			       EXTENT_NORESERVE, NULL, NULL, GFP_NOFS, NULL);
+			       EXTENT_NORESERVE, NULL, GFP_NOFS, NULL);
 
 out_unlock:
 	if (ret) {
-- 
2.26.3


  parent reply	other threads:[~2022-09-09 21:54 UTC|newest]

Thread overview: 47+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-09-09 21:53 [PATCH v2 00/36] btrfs: move extent_io_tree code and cleanups Josef Bacik
2022-09-09 21:53 ` [PATCH v2 01/36] btrfs: rename clean_io_failure and remove extraneous args Josef Bacik
2022-09-12 13:29   ` Johannes Thumshirn
2022-09-12 14:08   ` Christoph Hellwig
2022-09-12 18:01     ` Josef Bacik
2022-09-13  5:10       ` Christoph Hellwig
2022-09-13 12:49       ` David Sterba
2022-09-09 21:53 ` [PATCH v2 02/36] btrfs: unexport internal failrec functions Josef Bacik
2022-09-12 13:34   ` Johannes Thumshirn
2022-09-12 14:09   ` Christoph Hellwig
2022-09-09 21:53 ` [PATCH v2 03/36] btrfs: convert the io_failure_tree to a plain rb_tree Josef Bacik
2022-09-12 14:09   ` Christoph Hellwig
2022-09-09 21:53 ` [PATCH v2 04/36] btrfs: use find_first_extent_bit in btrfs_clean_io_failure Josef Bacik
2022-09-09 21:53 ` [PATCH v2 05/36] btrfs: separate out the extent state and extent buffer init code Josef Bacik
2022-09-09 21:53 ` [PATCH v2 06/36] btrfs: separate out the eb and extent state leak helpers Josef Bacik
2022-09-09 21:53 ` [PATCH v2 07/36] btrfs: temporarily export alloc_extent_state helpers Josef Bacik
2022-09-09 21:53 ` [PATCH v2 08/36] btrfs: move extent state init and alloc functions to their own file Josef Bacik
2022-09-09 21:53 ` [PATCH v2 09/36] btrfs: convert BUG_ON(EXTENT_BIT_LOCKED) checks to ASSERT's Josef Bacik
2022-09-09 21:53 ` [PATCH v2 10/36] btrfs: move simple extent bit helpers out of extent_io.c Josef Bacik
2022-09-09 21:53 ` [PATCH v2 11/36] btrfs: export wait_extent_bit Josef Bacik
2022-09-09 21:53 ` [PATCH v2 12/36] btrfs: move btrfs_debug_check_extent_io_range into extent-io-tree.c Josef Bacik
2022-09-09 21:53 ` [PATCH v2 13/36] btrfs: temporarily export and move core extent_io_tree tree functions Josef Bacik
2022-09-10 12:48   ` kernel test robot
2022-09-09 21:53 ` [PATCH v2 14/36] btrfs: temporarily export and then move extent state helpers Josef Bacik
2022-09-09 21:53 ` [PATCH v2 15/36] btrfs: move a few exported extent_io_tree helpers to extent-io-tree.c Josef Bacik
2022-09-09 21:53 ` [PATCH v2 16/36] btrfs: move core extent_io_tree functions " Josef Bacik
2022-09-09 21:53 ` [PATCH v2 17/36] btrfs: unexport btrfs_debug_check_extent_io_range Josef Bacik
2022-09-09 21:53 ` [PATCH v2 18/36] btrfs: unexport all the temporary exports for extent-io-tree.c Josef Bacik
2022-09-09 21:53 ` [PATCH v2 19/36] btrfs: remove struct tree_entry Josef Bacik
2022-09-09 21:53 ` [PATCH v2 20/36] btrfs: use next_state instead of rb_next where we can Josef Bacik
2022-09-09 21:53 ` [PATCH v2 21/36] btrfs: make tree_search return struct extent_state Josef Bacik
2022-09-09 21:53 ` [PATCH v2 22/36] btrfs: make tree_search_for_insert return extent_state Josef Bacik
2022-09-09 21:53 ` [PATCH v2 23/36] btrfs: make tree_search_prev_next return extent_state's Josef Bacik
2022-09-09 21:53 ` [PATCH v2 24/36] btrfs: use next_state/prev_state in merge_state Josef Bacik
2022-09-09 21:53 ` [PATCH v2 25/36] btrfs: move irrelevant prototypes to their appropriate header Josef Bacik
2022-09-09 21:53 ` [PATCH v2 26/36] btrfs: drop exclusive_bits from set_extent_bit Josef Bacik
2022-09-09 21:53 ` [PATCH v2 27/36] btrfs: remove the wake argument from clear_extent_bits Josef Bacik
2022-09-09 21:53 ` Josef Bacik [this message]
2022-09-09 21:53 ` [PATCH v2 29/36] btrfs: drop extent_changeset from set_extent_bit Josef Bacik
2022-09-09 21:53 ` [PATCH v2 30/36] btrfs: unify the lock/unlock extent variants Josef Bacik
2022-09-09 21:53 ` [PATCH v2 31/36] btrfs: remove extent_io_tree::track_uptodate Josef Bacik
2022-09-09 21:53 ` [PATCH v2 32/36] btrfs: get rid of extent_io_tree::dirty_bytes Josef Bacik
2022-09-09 21:53 ` [PATCH v2 33/36] btrfs: don't clear CTL bits when trying to release extent state Josef Bacik
2022-09-09 21:53 ` [PATCH v2 34/36] btrfs: replace delete argument with EXTENT_CLEAR_ALL_BITS Josef Bacik
2022-09-09 21:53 ` [PATCH v2 35/36] btrfs: don't init io tree with private data for non inodes Josef Bacik
2022-09-09 21:53 ` [PATCH v2 36/36] btrfs: remove is_data_inode() checks in extent-io-tree.c Josef Bacik
2022-09-14 14:05 ` [PATCH v2 00/36] btrfs: move extent_io_tree code and cleanups 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=f2272d293dde46d0e5950c2328120721b1d5f452.1662760286.git.josef@toxicpanda.com \
    --to=josef@toxicpanda.com \
    --cc=kernel-team@fb.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.