diff mbox series

[08/21] btrfs: zoned: move is_block_group_to_copy to zoned code

Message ID d0c9c72f4ecaf1998ba41f12628ca2262ec2040e.1637745470.git.johannes.thumshirn@wdc.com (mailing list archive)
State New, archived
Headers show
Series btrfs: first batch of zoned cleanups | expand

Commit Message

Johannes Thumshirn Nov. 24, 2021, 9:30 a.m. UTC
is_block_group_to_copy() is only used in a zoned filesystem, so move the
code to zoned code.

Signed-off-by: Johannes Thumshirn <johannes.thumshirn@wdc.com>
---
 fs/btrfs/volumes.c | 22 ++--------------------
 fs/btrfs/zoned.c   | 19 +++++++++++++++++++
 fs/btrfs/zoned.h   |  7 +++++++
 3 files changed, 28 insertions(+), 20 deletions(-)
diff mbox series

Patch

diff --git a/fs/btrfs/volumes.c b/fs/btrfs/volumes.c
index d0615256dacc3..23459328d19bc 100644
--- a/fs/btrfs/volumes.c
+++ b/fs/btrfs/volumes.c
@@ -6171,25 +6171,6 @@  static int get_extra_mirror_from_replace(struct btrfs_fs_info *fs_info,
 	return ret;
 }
 
-static bool is_block_group_to_copy(struct btrfs_fs_info *fs_info, u64 logical)
-{
-	struct btrfs_block_group *cache;
-	bool ret;
-
-	/* Non zoned filesystem does not use "to_copy" flag */
-	if (!btrfs_is_zoned(fs_info))
-		return false;
-
-	cache = btrfs_lookup_block_group(fs_info, logical);
-
-	spin_lock(&cache->lock);
-	ret = cache->to_copy;
-	spin_unlock(&cache->lock);
-
-	btrfs_put_block_group(cache);
-	return ret;
-}
-
 static void handle_ops_on_dev_replace(enum btrfs_map_op op,
 				      struct btrfs_io_context **bioc_ret,
 				      struct btrfs_dev_replace *dev_replace,
@@ -6210,7 +6191,8 @@  static void handle_ops_on_dev_replace(enum btrfs_map_op op,
 		 * A block group which have "to_copy" set will eventually
 		 * copied by dev-replace process. We can avoid cloning IO here.
 		 */
-		if (is_block_group_to_copy(dev_replace->srcdev->fs_info, logical))
+		if (btrfs_is_block_group_to_copy(dev_replace->srcdev->fs_info,
+						 logical))
 			return;
 
 		/*
diff --git a/fs/btrfs/zoned.c b/fs/btrfs/zoned.c
index 893d025069275..61d1e1c67a742 100644
--- a/fs/btrfs/zoned.c
+++ b/fs/btrfs/zoned.c
@@ -2214,3 +2214,22 @@  bool btrfs_finish_block_group_to_copy(struct btrfs_device *srcdev,
 
 	return true;
 }
+
+bool btrfs_is_block_group_to_copy(struct btrfs_fs_info *fs_info, u64 logical)
+{
+	struct btrfs_block_group *cache;
+	bool ret;
+
+	/* Non zoned filesystem does not use "to_copy" flag */
+	if (!btrfs_is_zoned(fs_info))
+		return false;
+
+	cache = btrfs_lookup_block_group(fs_info, logical);
+
+	spin_lock(&cache->lock);
+	ret = cache->to_copy;
+	spin_unlock(&cache->lock);
+
+	btrfs_put_block_group(cache);
+	return ret;
+}
diff --git a/fs/btrfs/zoned.h b/fs/btrfs/zoned.h
index bc9482cceadc4..487c699f152d4 100644
--- a/fs/btrfs/zoned.h
+++ b/fs/btrfs/zoned.h
@@ -84,6 +84,7 @@  int btrfs_mark_block_group_to_copy(struct btrfs_fs_info *fs_info,
 bool btrfs_finish_block_group_to_copy(struct btrfs_device *srcdev,
 				      struct btrfs_block_group *cache,
 				      u64 physical);
+bool btrfs_is_block_group_to_copy(struct btrfs_fs_info *fs_info, u64 logical);
 #else /* CONFIG_BLK_DEV_ZONED */
 static inline int btrfs_get_dev_zone(struct btrfs_device *device, u64 pos,
 				     struct blk_zone *zone)
@@ -255,6 +256,12 @@  static inline bool btrfs_finish_block_group_to_copy(struct btrfs_device *srcdev,
 {
 	return true;
 }
+
+static bool btrfs_is_block_group_to_copy(struct btrfs_fs_info *fs_info,
+					 u64 logical)
+{
+	return false;
+}
 #endif
 
 static inline bool btrfs_dev_is_sequential(struct btrfs_device *device, u64 pos)