From: Josef Bacik <josef@toxicpanda.com>
To: linux-btrfs@vger.kernel.org, kernel-team@fb.com
Subject: [PATCH v2 18/36] btrfs: unexport all the temporary exports for extent-io-tree.c
Date: Fri, 9 Sep 2022 17:53:31 -0400 [thread overview]
Message-ID: <d8eda49459cf376e5d2fa4e239fe41fc7b794ba5.1662760286.git.josef@toxicpanda.com> (raw)
In-Reply-To: <cover.1662760286.git.josef@toxicpanda.com>
Now that we've moved everything we can unexport all the temporary
exports, move the random helpers, and mark everything as static again.
Signed-off-by: Josef Bacik <josef@toxicpanda.com>
---
fs/btrfs/extent-io-tree.c | 69 ++++++++++++++++++++++++++-------------
fs/btrfs/extent-io-tree.h | 47 --------------------------
2 files changed, 47 insertions(+), 69 deletions(-)
diff --git a/fs/btrfs/extent-io-tree.c b/fs/btrfs/extent-io-tree.c
index 6e1945fef01f..e462b81a8d3e 100644
--- a/fs/btrfs/extent-io-tree.c
+++ b/fs/btrfs/extent-io-tree.c
@@ -9,6 +9,11 @@
static struct kmem_cache *extent_state_cache;
+static inline bool extent_state_in_tree(const struct extent_state *state)
+{
+ return !RB_EMPTY_NODE(&state->rb_node);
+}
+
#ifdef CONFIG_BTRFS_DEBUG
static LIST_HEAD(states);
static DEFINE_SPINLOCK(leak_lock);
@@ -81,6 +86,12 @@ static inline void __btrfs_debug_check_extent_io_range(const char *caller,
*/
static struct lock_class_key file_extent_tree_class;
+struct tree_entry {
+ u64 start;
+ u64 end;
+ struct rb_node rb_node;
+};
+
void extent_io_tree_init(struct btrfs_fs_info *fs_info,
struct extent_io_tree *tree, unsigned int owner,
void *private_data)
@@ -124,7 +135,7 @@ void extent_io_tree_release(struct extent_io_tree *tree)
spin_unlock(&tree->lock);
}
-struct extent_state *alloc_extent_state(gfp_t mask)
+static struct extent_state *alloc_extent_state(gfp_t mask)
{
struct extent_state *state;
@@ -145,7 +156,7 @@ struct extent_state *alloc_extent_state(gfp_t mask)
return state;
}
-struct extent_state *alloc_extent_state_atomic(struct extent_state *prealloc)
+static struct extent_state *alloc_extent_state_atomic(struct extent_state *prealloc)
{
if (!prealloc)
prealloc = alloc_extent_state(GFP_ATOMIC);
@@ -183,6 +194,15 @@ static int add_extent_changeset(struct extent_state *state, u32 bits,
return ret;
}
+static inline struct extent_state *next_state(struct extent_state *state)
+{
+ struct rb_node *next = rb_next(&state->rb_node);
+ if (next)
+ return rb_entry(next, struct extent_state, rb_node);
+ else
+ return NULL;
+}
+
/**
* Search @tree for an entry that contains @offset. Such entry would have
* entry->start <= offset && entry->end >= offset.
@@ -200,9 +220,10 @@ static int add_extent_changeset(struct extent_state *state, u32 bits,
* If no such entry exists, return pointer to entry that ends before @offset
* and fill parameters @node_ret and @parent_ret, ie. does not return NULL.
*/
-struct rb_node *tree_search_for_insert(struct extent_io_tree *tree, u64 offset,
- struct rb_node ***node_ret,
- struct rb_node **parent_ret)
+static inline struct rb_node *tree_search_for_insert(struct extent_io_tree *tree,
+ u64 offset,
+ struct rb_node ***node_ret,
+ struct rb_node **parent_ret)
{
struct rb_root *root = &tree->state;
struct rb_node **node = &root->rb_node;
@@ -247,9 +268,10 @@ struct rb_node *tree_search_for_insert(struct extent_io_tree *tree, u64 offset,
* such entry exists, then return NULL and fill @prev_ret and @next_ret.
* Otherwise return the found entry and other pointers are left untouched.
*/
-struct rb_node *tree_search_prev_next(struct extent_io_tree *tree, u64 offset,
- struct rb_node **prev_ret,
- struct rb_node **next_ret)
+static inline struct rb_node *tree_search_prev_next(struct extent_io_tree *tree,
+ u64 offset,
+ struct rb_node **prev_ret,
+ struct rb_node **next_ret)
{
struct rb_root *root = &tree->state;
struct rb_node **node = &root->rb_node;
@@ -313,7 +335,7 @@ static void extent_io_tree_panic(struct extent_io_tree *tree, int err)
*
* This should be called with the tree lock held.
*/
-void merge_state(struct extent_io_tree *tree, struct extent_state *state)
+static void merge_state(struct extent_io_tree *tree, struct extent_state *state)
{
struct extent_state *other;
struct rb_node *other_node;
@@ -353,8 +375,9 @@ void merge_state(struct extent_io_tree *tree, struct extent_state *state)
}
}
-void set_state_bits(struct extent_io_tree *tree, struct extent_state *state,
- u32 bits, struct extent_changeset *changeset)
+static void set_state_bits(struct extent_io_tree *tree,
+ struct extent_state *state,
+ u32 bits, struct extent_changeset *changeset)
{
u32 bits_to_set = bits & ~EXTENT_CTLBITS;
int ret;
@@ -381,8 +404,9 @@ void set_state_bits(struct extent_io_tree *tree, struct extent_state *state,
* The tree lock is not taken internally. This is a utility function and
* probably isn't what you want to call (see set/clear_extent_bit).
*/
-int insert_state(struct extent_io_tree *tree, struct extent_state *state,
- u32 bits, struct extent_changeset *changeset)
+static int insert_state(struct extent_io_tree *tree,
+ struct extent_state *state,
+ u32 bits, struct extent_changeset *changeset)
{
struct rb_node **node;
struct rb_node *parent;
@@ -419,9 +443,10 @@ int insert_state(struct extent_io_tree *tree, struct extent_state *state,
/*
* Insert state to @tree to the location given by @node and @parent.
*/
-void insert_state_fast(struct extent_io_tree *tree, struct extent_state *state,
- struct rb_node **node, struct rb_node *parent,
- unsigned bits, struct extent_changeset *changeset)
+static void insert_state_fast(struct extent_io_tree *tree,
+ struct extent_state *state, struct rb_node **node,
+ struct rb_node *parent, unsigned bits,
+ struct extent_changeset *changeset)
{
set_state_bits(tree, state, bits, changeset);
rb_link_node(&state->rb_node, parent, node);
@@ -443,8 +468,8 @@ void insert_state_fast(struct extent_io_tree *tree, struct extent_state *state,
* The tree locks are not taken by this function. They need to be held
* by the caller.
*/
-int split_state(struct extent_io_tree *tree, struct extent_state *orig,
- struct extent_state *prealloc, u64 split)
+static int split_state(struct extent_io_tree *tree, struct extent_state *orig,
+ struct extent_state *prealloc, u64 split)
{
struct rb_node *parent = NULL;
struct rb_node **node;
@@ -489,10 +514,10 @@ int split_state(struct extent_io_tree *tree, struct extent_state *orig,
* If no bits are set on the state struct after clearing things, the
* struct is freed and removed from the tree
*/
-struct extent_state *clear_state_bit(struct extent_io_tree *tree,
- struct extent_state *state, u32 bits,
- int wake,
- struct extent_changeset *changeset)
+static struct extent_state *clear_state_bit(struct extent_io_tree *tree,
+ struct extent_state *state,
+ u32 bits, int wake,
+ struct extent_changeset *changeset)
{
struct extent_state *next;
u32 bits_to_clear = bits & ~EXTENT_CTLBITS;
diff --git a/fs/btrfs/extent-io-tree.h b/fs/btrfs/extent-io-tree.h
index d01aba02ae2f..3b17cc33bcec 100644
--- a/fs/btrfs/extent-io-tree.h
+++ b/fs/btrfs/extent-io-tree.h
@@ -260,51 +260,4 @@ void btrfs_free_io_failure_record(struct btrfs_inode *inode, u64 start,
u64 end);
int btrfs_clean_io_failure(struct btrfs_inode *inode, u64 start,
struct page *page, unsigned int pg_offset);
-
-struct extent_state *alloc_extent_state_atomic(struct extent_state *prealloc);
-struct extent_state *alloc_extent_state(gfp_t mask);
-
-static inline bool extent_state_in_tree(const struct extent_state *state)
-{
- return !RB_EMPTY_NODE(&state->rb_node);
-}
-
-struct tree_entry {
- u64 start;
- u64 end;
- struct rb_node rb_node;
-};
-
-struct rb_node *tree_search_for_insert(struct extent_io_tree *tree, u64 offset,
- struct rb_node ***node_ret,
- struct rb_node **parent_ret);
-struct rb_node *tree_search_prev_next(struct extent_io_tree *tree, u64 offset,
- struct rb_node **prev_ret,
- struct rb_node **next_ret);
-void merge_state(struct extent_io_tree *tree, struct extent_state *state);
-
-static inline struct extent_state *next_state(struct extent_state *state)
-{
- struct rb_node *next = rb_next(&state->rb_node);
- if (next)
- return rb_entry(next, struct extent_state, rb_node);
- else
- return NULL;
-}
-struct extent_state *clear_state_bit(struct extent_io_tree *tree,
- struct extent_state *state, u32 bits,
- int wake,
- struct extent_changeset *changeset);
-int insert_state(struct extent_io_tree *tree, struct extent_state *state,
- u32 bits, struct extent_changeset *changeset);
-int split_state(struct extent_io_tree *tree, struct extent_state *orig,
- struct extent_state *prealloc, u64 split);
-int insert_state(struct extent_io_tree *tree, struct extent_state *state,
- u32 bits, struct extent_changeset *changeset);
-void insert_state_fast(struct extent_io_tree *tree, struct extent_state *state,
- struct rb_node **node, struct rb_node *parent,
- unsigned bits, struct extent_changeset *changeset);
-void set_state_bits(struct extent_io_tree *tree, struct extent_state *state,
- u32 bits, struct extent_changeset *changeset);
-
#endif /* BTRFS_EXTENT_IO_TREE_H */
--
2.26.3
next prev 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 ` Josef Bacik [this message]
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 ` [PATCH v2 28/36] btrfs: remove failed_start argument from set_extent_bit Josef Bacik
2022-09-09 21:53 ` [PATCH v2 29/36] btrfs: drop extent_changeset " 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=d8eda49459cf376e5d2fa4e239fe41fc7b794ba5.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox