Thread (33 messages) 33 messages, 4 authors, 2021-11-29
STALE1672d

[PATCH 11/21] btrfs: zoned: move fill_writer_pointer_gap to zoned code

From: Johannes Thumshirn <hidden>
Date: 2021-11-24 09:31:12
Subsystem: btrfs file system, filesystems (vfs and infrastructure), the rest · Maintainers: Chris Mason, David Sterba, Alexander Viro, Christian Brauner, Linus Torvalds

fill_writer_pointer_gap() is only used in a zoned filesystem, so move it
to zoned code.

Signed-off-by: Johannes Thumshirn <redacted>
---
 fs/btrfs/scrub.c | 23 +----------------------
 fs/btrfs/zoned.c | 23 +++++++++++++++++++++++
 fs/btrfs/zoned.h |  6 ++++++
 3 files changed, 30 insertions(+), 22 deletions(-)
diff --git a/fs/btrfs/scrub.c b/fs/btrfs/scrub.c
index a2c42ff544701..64728ca585c52 100644
--- a/fs/btrfs/scrub.c
+++ b/fs/btrfs/scrub.c
@@ -1576,27 +1576,6 @@ static int scrub_write_page_to_dev_replace(struct scrub_block *sblock,
 	return scrub_add_page_to_wr_bio(sblock->sctx, spage);
 }
 
-static int fill_writer_pointer_gap(struct scrub_ctx *sctx, u64 physical)
-{
-	int ret = 0;
-	u64 length;
-
-	if (!btrfs_is_zoned(sctx->fs_info))
-		return 0;
-
-	if (!btrfs_dev_is_sequential(sctx->wr_tgtdev, physical))
-		return 0;
-
-	if (sctx->write_pointer < physical) {
-		length = physical - sctx->write_pointer;
-
-		ret = btrfs_zoned_issue_zeroout(sctx->wr_tgtdev,
-						sctx->write_pointer, length);
-		if (!ret)
-			sctx->write_pointer = physical;
-	}
-	return ret;
-}
 
 static int scrub_add_page_to_wr_bio(struct scrub_ctx *sctx,
 				    struct scrub_page *spage)
@@ -1621,7 +1600,7 @@ static int scrub_add_page_to_wr_bio(struct scrub_ctx *sctx,
 	if (sbio->page_count == 0) {
 		struct bio *bio;
 
-		ret = fill_writer_pointer_gap(sctx,
+		ret = btrfs_fill_writer_pointer_gap(sctx,
 					      spage->physical_for_dev_replace);
 		if (ret) {
 			mutex_unlock(&sctx->wr_lock);
diff --git a/fs/btrfs/zoned.c b/fs/btrfs/zoned.c
index 61d1e1c67a742..8493093aea849 100644
--- a/fs/btrfs/zoned.c
+++ b/fs/btrfs/zoned.c
@@ -15,6 +15,7 @@
 #include "transaction.h"
 #include "dev-replace.h"
 #include "space-info.h"
+#include "scrub.h"
 
 /* Maximum number of zones to report per blkdev_report_zones() call */
 #define BTRFS_REPORT_NR_ZONES   4096
@@ -2233,3 +2234,25 @@ bool btrfs_is_block_group_to_copy(struct btrfs_fs_info *fs_info, u64 logical)
 	btrfs_put_block_group(cache);
 	return ret;
 }
+
+int btrfs_fill_writer_pointer_gap(struct scrub_ctx *sctx, u64 physical)
+{
+	int ret = 0;
+	u64 length;
+
+	if (!btrfs_is_zoned(sctx->fs_info))
+		return 0;
+
+	if (!btrfs_dev_is_sequential(sctx->wr_tgtdev, physical))
+		return 0;
+
+	if (sctx->write_pointer < physical) {
+		length = physical - sctx->write_pointer;
+
+		ret = btrfs_zoned_issue_zeroout(sctx->wr_tgtdev,
+						sctx->write_pointer, length);
+		if (!ret)
+			sctx->write_pointer = physical;
+	}
+	return ret;
+}
diff --git a/fs/btrfs/zoned.h b/fs/btrfs/zoned.h
index 487c699f152d4..5701f659b1c39 100644
--- a/fs/btrfs/zoned.h
+++ b/fs/btrfs/zoned.h
@@ -85,6 +85,7 @@ 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);
+int btrfs_fill_writer_pointer_gap(struct scrub_ctx *sctx, u64 physical);
 #else /* CONFIG_BLK_DEV_ZONED */
 static inline int btrfs_get_dev_zone(struct btrfs_device *device, u64 pos,
 				     struct blk_zone *zone)
@@ -262,6 +263,11 @@ static bool btrfs_is_block_group_to_copy(struct btrfs_fs_info *fs_info,
 {
 	return false;
 }
+static inline int btrfs_fill_writer_pointer_gap(struct scrub_ctx *sctx,
+						    u64 physical)
+{
+	return 0;
+}
 #endif
 
 static inline bool btrfs_dev_is_sequential(struct btrfs_device *device, u64 pos)
-- 
2.31.1
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help