All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2 0/4] Zoned device cleanups
@ 2026-03-10 17:36 cem
  2026-03-10 17:36 ` [PATCH v2 1/4] xfs: factor out isize updates from xfs_dio_write_end_io cem
                   ` (4 more replies)
  0 siblings, 5 replies; 11+ messages in thread
From: cem @ 2026-03-10 17:36 UTC (permalink / raw)
  To: linux-xfs; +Cc: hch, dlemoal

From: Carlos Maiolino <cem@kernel.org>

This is the V2 of this series, which implement changes suggested by
Damien and Christoph on the V1.

Only changes are on patches 1 and 2.

Original cover follows:

These patches initially were part from an attempt to implement atomic
writes for zoned devices.

Due to unforeseen circumstances, we can't implement it, at least for now
without restructuring a big part of the code.

Christoph though suggested those cleanups were good enough to be sent
even without proceeding with the implementation.


Carlos Maiolino (4):
  xfs: factor out isize updates from xfs_dio_write_end_io
  xfs: factor out xfs_dio_write_zoned_end_io
  xfs: factor out xfs_zone_inc_written
  xfs: opencode xfs_zone_record_blocks

 fs/xfs/xfs_file.c       | 95 ++++++++++++++++++++++++++++++-----------
 fs/xfs/xfs_zone_alloc.c | 32 ++++++--------
 2 files changed, 82 insertions(+), 45 deletions(-)

Signed-off-by: Carlos Maiolino <cmaiolino@redhat.com>
-- 
2.53.0

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [PATCH v2 1/4] xfs: factor out isize updates from xfs_dio_write_end_io
  2026-03-10 17:36 [PATCH v2 0/4] Zoned device cleanups cem
@ 2026-03-10 17:36 ` cem
  2026-03-11  7:03   ` Damien Le Moal
  2026-03-12  6:52   ` Christoph Hellwig
  2026-03-10 17:36 ` [PATCH v2 2/4] xfs: factor out xfs_dio_write_zoned_end_io cem
                   ` (3 subsequent siblings)
  4 siblings, 2 replies; 11+ messages in thread
From: cem @ 2026-03-10 17:36 UTC (permalink / raw)
  To: linux-xfs; +Cc: hch, dlemoal

From: Carlos Maiolino <cem@kernel.org>

This is the only code needed for zoned inodes, so factor it out so
we can move zoned inodes ioend to its own callback.

Signed-off-by: Carlos Maiolino <cmaiolino@redhat.com>
---
v2: Don't call xfs_setfilesize() unnecessarily

 fs/xfs/xfs_file.c | 60 +++++++++++++++++++++++++++++------------------
 1 file changed, 37 insertions(+), 23 deletions(-)

diff --git a/fs/xfs/xfs_file.c b/fs/xfs/xfs_file.c
index 6246f34df9fd..fce6be55d90c 100644
--- a/fs/xfs/xfs_file.c
+++ b/fs/xfs/xfs_file.c
@@ -560,6 +560,42 @@ xfs_zoned_write_space_reserve(
 			flags, ac);
 }
 
+/*
+ * We need to lock the test/set EOF update as we can be racing with
+ * other IO completions here to update the EOF. Failing to serialise
+ * here can result in EOF moving backwards and Bad Things Happen when
+ * that occurs.
+ *
+ * As IO completion only ever extends EOF, we can do an unlocked check
+ * here to avoid taking the spinlock. If we land within the current EOF,
+ * then we do not need to do an extending update at all, and we don't
+ * need to take the lock to check this. If we race with an update moving
+ * EOF, then we'll either still be beyond EOF and need to take the lock,
+ * or we'll be within EOF and we don't need to take it at all.
+ */
+static int
+xfs_dio_endio_set_isize(
+	struct inode		*inode,
+	loff_t			offset,
+	ssize_t			size)
+{
+	struct xfs_inode	*ip = XFS_I(inode);
+
+	if (offset + size <= i_size_read(inode))
+		return 0;
+
+	spin_lock(&ip->i_flags_lock);
+	if (offset + size <= i_size_read(inode)) {
+		spin_unlock(&ip->i_flags_lock);
+		return 0;
+	}
+
+	i_size_write(inode, offset + size);
+	spin_unlock(&ip->i_flags_lock);
+
+	return xfs_setfilesize(ip, offset, size);
+}
+
 static int
 xfs_dio_write_end_io(
 	struct kiocb		*iocb,
@@ -623,30 +659,8 @@ xfs_dio_write_end_io(
 	 * with the on-disk inode size being outside the in-core inode size. We
 	 * have no other method of updating EOF for AIO, so always do it here
 	 * if necessary.
-	 *
-	 * We need to lock the test/set EOF update as we can be racing with
-	 * other IO completions here to update the EOF. Failing to serialise
-	 * here can result in EOF moving backwards and Bad Things Happen when
-	 * that occurs.
-	 *
-	 * As IO completion only ever extends EOF, we can do an unlocked check
-	 * here to avoid taking the spinlock. If we land within the current EOF,
-	 * then we do not need to do an extending update at all, and we don't
-	 * need to take the lock to check this. If we race with an update moving
-	 * EOF, then we'll either still be beyond EOF and need to take the lock,
-	 * or we'll be within EOF and we don't need to take it at all.
 	 */
-	if (offset + size <= i_size_read(inode))
-		goto out;
-
-	spin_lock(&ip->i_flags_lock);
-	if (offset + size > i_size_read(inode)) {
-		i_size_write(inode, offset + size);
-		spin_unlock(&ip->i_flags_lock);
-		error = xfs_setfilesize(ip, offset, size);
-	} else {
-		spin_unlock(&ip->i_flags_lock);
-	}
+	error = xfs_dio_endio_set_isize(inode, offset, size);
 
 out:
 	memalloc_nofs_restore(nofs_flag);
-- 
2.53.0


^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [PATCH v2 2/4] xfs: factor out xfs_dio_write_zoned_end_io
  2026-03-10 17:36 [PATCH v2 0/4] Zoned device cleanups cem
  2026-03-10 17:36 ` [PATCH v2 1/4] xfs: factor out isize updates from xfs_dio_write_end_io cem
@ 2026-03-10 17:36 ` cem
  2026-03-11  7:03   ` Damien Le Moal
  2026-03-10 17:36 ` [PATCH v2 3/4] xfs: factor out xfs_zone_inc_written cem
                   ` (2 subsequent siblings)
  4 siblings, 1 reply; 11+ messages in thread
From: cem @ 2026-03-10 17:36 UTC (permalink / raw)
  To: linux-xfs; +Cc: hch, dlemoal

From: Carlos Maiolino <cem@kernel.org>

Stop sharing direct IO end_io between regular and zoned devices
by factoring out zoned dio end_io to its own function.

Signed-off-by: Carlos Maiolino <cmaiolino@redhat.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>

---
v2: Rewrite commit description - no code change

 fs/xfs/xfs_file.c | 35 ++++++++++++++++++++++++++++++++---
 1 file changed, 32 insertions(+), 3 deletions(-)

diff --git a/fs/xfs/xfs_file.c b/fs/xfs/xfs_file.c
index fce6be55d90c..7918968e1d62 100644
--- a/fs/xfs/xfs_file.c
+++ b/fs/xfs/xfs_file.c
@@ -596,6 +596,36 @@ xfs_dio_endio_set_isize(
 	return xfs_setfilesize(ip, offset, size);
 }
 
+static int
+xfs_zoned_dio_write_end_io(
+	struct kiocb		*iocb,
+	ssize_t			size,
+	int			error,
+	unsigned		flags)
+{
+	struct inode		*inode = file_inode(iocb->ki_filp);
+	struct xfs_inode	*ip = XFS_I(inode);
+	unsigned int		nofs_flag;
+
+	ASSERT(!(flags & (IOMAP_DIO_UNWRITTEN | IOMAP_DIO_COW)));
+
+	trace_xfs_end_io_direct_write(ip, iocb->ki_pos, size);
+
+	if (xfs_is_shutdown(ip->i_mount))
+		return -EIO;
+
+	if (error || !size)
+		return error;
+
+	XFS_STATS_ADD(ip->i_mount, xs_write_bytes, size);
+
+	nofs_flag = memalloc_nofs_save();
+	error = xfs_dio_endio_set_isize(inode, iocb->ki_pos, size);
+	memalloc_nofs_restore(nofs_flag);
+
+	return error;
+}
+
 static int
 xfs_dio_write_end_io(
 	struct kiocb		*iocb,
@@ -608,8 +638,7 @@ xfs_dio_write_end_io(
 	loff_t			offset = iocb->ki_pos;
 	unsigned int		nofs_flag;
 
-	ASSERT(!xfs_is_zoned_inode(ip) ||
-	       !(flags & (IOMAP_DIO_UNWRITTEN | IOMAP_DIO_COW)));
+	ASSERT(!xfs_is_zoned_inode(ip));
 
 	trace_xfs_end_io_direct_write(ip, offset, size);
 
@@ -702,7 +731,7 @@ xfs_dio_zoned_submit_io(
 static const struct iomap_dio_ops xfs_dio_zoned_write_ops = {
 	.bio_set	= &iomap_ioend_bioset,
 	.submit_io	= xfs_dio_zoned_submit_io,
-	.end_io		= xfs_dio_write_end_io,
+	.end_io		= xfs_zoned_dio_write_end_io,
 };
 
 /*
-- 
2.53.0


^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [PATCH v2 3/4] xfs: factor out xfs_zone_inc_written
  2026-03-10 17:36 [PATCH v2 0/4] Zoned device cleanups cem
  2026-03-10 17:36 ` [PATCH v2 1/4] xfs: factor out isize updates from xfs_dio_write_end_io cem
  2026-03-10 17:36 ` [PATCH v2 2/4] xfs: factor out xfs_dio_write_zoned_end_io cem
@ 2026-03-10 17:36 ` cem
  2026-03-10 17:36 ` [PATCH v2 4/4] xfs: opencode xfs_zone_record_blocks cem
  2026-03-12  8:37 ` [PATCH v2 0/4] Zoned device cleanups Carlos Maiolino
  4 siblings, 0 replies; 11+ messages in thread
From: cem @ 2026-03-10 17:36 UTC (permalink / raw)
  To: linux-xfs; +Cc: hch, dlemoal

From: Carlos Maiolino <cem@kernel.org>

Move the written blocks increment and full zone check into a new helper.
Also add an assert to ensure rmap lock is held here.

Signed-off-by: Carlos Maiolino <cmaiolino@redhat.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Damien Le Moal <dlemoal@kernel.org>

---
v2: add RwB tags, no changes

 fs/xfs/xfs_zone_alloc.c | 20 ++++++++++++++------
 1 file changed, 14 insertions(+), 6 deletions(-)

diff --git a/fs/xfs/xfs_zone_alloc.c b/fs/xfs/xfs_zone_alloc.c
index e3d19b6dc64a..97149bfc2512 100644
--- a/fs/xfs/xfs_zone_alloc.c
+++ b/fs/xfs/xfs_zone_alloc.c
@@ -189,6 +189,18 @@ xfs_open_zone_mark_full(
 		xfs_zone_account_reclaimable(rtg, rtg_blocks(rtg) - used);
 }
 
+static inline void
+xfs_zone_inc_written(
+	struct xfs_open_zone	*oz,
+	xfs_filblks_t		len)
+{
+	xfs_assert_ilocked(rtg_rmap(oz->oz_rtg), XFS_ILOCK_EXCL);
+
+	oz->oz_written += len;
+	if (oz->oz_written == rtg_blocks(oz->oz_rtg))
+		xfs_open_zone_mark_full(oz);
+}
+
 static void
 xfs_zone_record_blocks(
 	struct xfs_trans	*tp,
@@ -206,9 +218,7 @@ xfs_zone_record_blocks(
 	xfs_rtgroup_trans_join(tp, rtg, XFS_RTGLOCK_RMAP);
 	rmapip->i_used_blocks += len;
 	ASSERT(rmapip->i_used_blocks <= rtg_blocks(rtg));
-	oz->oz_written += len;
-	if (oz->oz_written == rtg_blocks(rtg))
-		xfs_open_zone_mark_full(oz);
+	xfs_zone_inc_written(oz, len);
 	xfs_trans_log_inode(tp, rmapip, XFS_ILOG_CORE);
 }
 
@@ -227,9 +237,7 @@ xfs_zone_skip_blocks(
 	trace_xfs_zone_skip_blocks(oz, 0, len);
 
 	xfs_rtgroup_lock(rtg, XFS_RTGLOCK_RMAP);
-	oz->oz_written += len;
-	if (oz->oz_written == rtg_blocks(rtg))
-		xfs_open_zone_mark_full(oz);
+	xfs_zone_inc_written(oz, len);
 	xfs_rtgroup_unlock(rtg, XFS_RTGLOCK_RMAP);
 
 	xfs_add_frextents(rtg_mount(rtg), len);
-- 
2.53.0


^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [PATCH v2 4/4] xfs: opencode xfs_zone_record_blocks
  2026-03-10 17:36 [PATCH v2 0/4] Zoned device cleanups cem
                   ` (2 preceding siblings ...)
  2026-03-10 17:36 ` [PATCH v2 3/4] xfs: factor out xfs_zone_inc_written cem
@ 2026-03-10 17:36 ` cem
  2026-03-18  8:14   ` Christoph Hellwig
  2026-03-12  8:37 ` [PATCH v2 0/4] Zoned device cleanups Carlos Maiolino
  4 siblings, 1 reply; 11+ messages in thread
From: cem @ 2026-03-10 17:36 UTC (permalink / raw)
  To: linux-xfs; +Cc: hch, dlemoal

From: Carlos Maiolino <cem@kernel.org>

We only have a single caller, no need to keep it in its own function.

Signed-off-by: Carlos Maiolino <cmaiolino@redhat.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Damien Le Moal <dlemoal@kernel.org>

---
v2: add RwB tags, no changes

 fs/xfs/xfs_zone_alloc.c | 30 ++++++++----------------------
 1 file changed, 8 insertions(+), 22 deletions(-)

diff --git a/fs/xfs/xfs_zone_alloc.c b/fs/xfs/xfs_zone_alloc.c
index 97149bfc2512..7d712d5a5ce0 100644
--- a/fs/xfs/xfs_zone_alloc.c
+++ b/fs/xfs/xfs_zone_alloc.c
@@ -201,27 +201,6 @@ xfs_zone_inc_written(
 		xfs_open_zone_mark_full(oz);
 }
 
-static void
-xfs_zone_record_blocks(
-	struct xfs_trans	*tp,
-	struct xfs_open_zone	*oz,
-	xfs_fsblock_t		fsbno,
-	xfs_filblks_t		len)
-{
-	struct xfs_mount	*mp = tp->t_mountp;
-	struct xfs_rtgroup	*rtg = oz->oz_rtg;
-	struct xfs_inode	*rmapip = rtg_rmap(rtg);
-
-	trace_xfs_zone_record_blocks(oz, xfs_rtb_to_rgbno(mp, fsbno), len);
-
-	xfs_rtgroup_lock(rtg, XFS_RTGLOCK_RMAP);
-	xfs_rtgroup_trans_join(tp, rtg, XFS_RTGLOCK_RMAP);
-	rmapip->i_used_blocks += len;
-	ASSERT(rmapip->i_used_blocks <= rtg_blocks(rtg));
-	xfs_zone_inc_written(oz, len);
-	xfs_trans_log_inode(tp, rmapip, XFS_ILOG_CORE);
-}
-
 /*
  * Called for blocks that have been written to disk, but not actually linked to
  * an inode, which can happen when garbage collection races with user data
@@ -252,6 +231,8 @@ xfs_zoned_map_extent(
 	xfs_fsblock_t		old_startblock)
 {
 	struct xfs_bmbt_irec	data;
+	struct xfs_rtgroup	*rtg = oz->oz_rtg;
+	struct xfs_inode	*rmapip = rtg_rmap(rtg);
 	int			nmaps = 1;
 	int			error;
 
@@ -310,7 +291,12 @@ xfs_zoned_map_extent(
 		}
 	}
 
-	xfs_zone_record_blocks(tp, oz, new->br_startblock, new->br_blockcount);
+	xfs_rtgroup_lock(rtg, XFS_RTGLOCK_RMAP);
+	xfs_rtgroup_trans_join(tp, rtg, XFS_RTGLOCK_RMAP);
+	rmapip->i_used_blocks += new->br_blockcount;
+	ASSERT(rmapip->i_used_blocks <= rtg_blocks(rtg));
+	xfs_zone_inc_written(oz, new->br_blockcount);
+	xfs_trans_log_inode(tp, rmapip, XFS_ILOG_CORE);
 
 	/* Map the new blocks into the data fork. */
 	xfs_bmap_map_extent(tp, ip, XFS_DATA_FORK, new);
-- 
2.53.0


^ permalink raw reply related	[flat|nested] 11+ messages in thread

* Re: [PATCH v2 1/4] xfs: factor out isize updates from xfs_dio_write_end_io
  2026-03-10 17:36 ` [PATCH v2 1/4] xfs: factor out isize updates from xfs_dio_write_end_io cem
@ 2026-03-11  7:03   ` Damien Le Moal
  2026-03-12  6:52   ` Christoph Hellwig
  1 sibling, 0 replies; 11+ messages in thread
From: Damien Le Moal @ 2026-03-11  7:03 UTC (permalink / raw)
  To: cem, linux-xfs; +Cc: hch

On 2026/03/10 18:36, cem@kernel.org wrote:
> From: Carlos Maiolino <cem@kernel.org>
> 
> This is the only code needed for zoned inodes, so factor it out so
> we can move zoned inodes ioend to its own callback.
> 
> Signed-off-by: Carlos Maiolino <cmaiolino@redhat.com>

Reviewed-by: Damien Le Moal <dlemoal@kernel.org>


-- 
Damien Le Moal
Western Digital Research

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH v2 2/4] xfs: factor out xfs_dio_write_zoned_end_io
  2026-03-10 17:36 ` [PATCH v2 2/4] xfs: factor out xfs_dio_write_zoned_end_io cem
@ 2026-03-11  7:03   ` Damien Le Moal
  0 siblings, 0 replies; 11+ messages in thread
From: Damien Le Moal @ 2026-03-11  7:03 UTC (permalink / raw)
  To: cem, linux-xfs; +Cc: hch

On 2026/03/10 18:36, cem@kernel.org wrote:
> From: Carlos Maiolino <cem@kernel.org>
> 
> Stop sharing direct IO end_io between regular and zoned devices
> by factoring out zoned dio end_io to its own function.
> 
> Signed-off-by: Carlos Maiolino <cmaiolino@redhat.com>
> Reviewed-by: Christoph Hellwig <hch@lst.de>

Reviewed-by: Damien Le Moal <dlemoal@kernel.org>


-- 
Damien Le Moal
Western Digital Research

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH v2 1/4] xfs: factor out isize updates from xfs_dio_write_end_io
  2026-03-10 17:36 ` [PATCH v2 1/4] xfs: factor out isize updates from xfs_dio_write_end_io cem
  2026-03-11  7:03   ` Damien Le Moal
@ 2026-03-12  6:52   ` Christoph Hellwig
  1 sibling, 0 replies; 11+ messages in thread
From: Christoph Hellwig @ 2026-03-12  6:52 UTC (permalink / raw)
  To: cem; +Cc: linux-xfs, hch, dlemoal

Looks good:

Reviewed-by: Christoph Hellwig <hch@lst.de>


^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH v2 0/4] Zoned device cleanups
  2026-03-10 17:36 [PATCH v2 0/4] Zoned device cleanups cem
                   ` (3 preceding siblings ...)
  2026-03-10 17:36 ` [PATCH v2 4/4] xfs: opencode xfs_zone_record_blocks cem
@ 2026-03-12  8:37 ` Carlos Maiolino
  4 siblings, 0 replies; 11+ messages in thread
From: Carlos Maiolino @ 2026-03-12  8:37 UTC (permalink / raw)
  To: linux-xfs, cem; +Cc: hch, dlemoal

On Tue, 10 Mar 2026 18:36:45 +0100, cem@kernel.org wrote:
> From: Carlos Maiolino <cem@kernel.org>
> 
> This is the V2 of this series, which implement changes suggested by
> Damien and Christoph on the V1.
> 
> Only changes are on patches 1 and 2.
> 
> [...]

Applied to for-next, thanks!

[1/4] xfs: factor out isize updates from xfs_dio_write_end_io
      commit: db8367f63b301bbdff6eb00c2e09fad4f2ae75e9
[2/4] xfs: factor out xfs_dio_write_zoned_end_io
      commit: 02a5d8993b09fe9a6754e57d0e25399baffe9a06
[3/4] xfs: factor out xfs_zone_inc_written
      commit: 3bdc20b005c20ce1bf9b098d1ee2caa1d994141e
[4/4] xfs: opencode xfs_zone_record_blocks
      commit: 54514abb9891eb35033608e0fb51809f5a4c07ff

Best regards,
-- 
Carlos Maiolino <cem@kernel.org>


^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH v2 4/4] xfs: opencode xfs_zone_record_blocks
  2026-03-10 17:36 ` [PATCH v2 4/4] xfs: opencode xfs_zone_record_blocks cem
@ 2026-03-18  8:14   ` Christoph Hellwig
  2026-03-18  8:33     ` Carlos Maiolino
  0 siblings, 1 reply; 11+ messages in thread
From: Christoph Hellwig @ 2026-03-18  8:14 UTC (permalink / raw)
  To: cem; +Cc: linux-xfs, hch, dlemoal

On Tue, Mar 10, 2026 at 06:36:49PM +0100, cem@kernel.org wrote:
> From: Carlos Maiolino <cem@kernel.org>
> 
> We only have a single caller, no need to keep it in its own function.

This accidentally dropped the record_blocks trace event.  The patch
below adds it back.  Feel free to fold it in if that works for you.

---
From 6e413887a36cd91af3684d8af357b50538106bea Mon Sep 17 00:00:00 2001
From: Christoph Hellwig <hch@lst.de>
Date: Wed, 18 Mar 2026 08:58:38 +0100
Subject: xfs: add back the xfs_zone_record_blocks trace event

Commit 54514abb9891 ("xfs: opencode xfs_zone_record_blocks")
accidentally removed it.

Signed-off-by: Christoph Hellwig <hch@lst.de>
---
 fs/xfs/xfs_zone_alloc.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/fs/xfs/xfs_zone_alloc.c b/fs/xfs/xfs_zone_alloc.c
index 7d712d5a5ce0..9d02160c5334 100644
--- a/fs/xfs/xfs_zone_alloc.c
+++ b/fs/xfs/xfs_zone_alloc.c
@@ -291,6 +291,9 @@ xfs_zoned_map_extent(
 		}
 	}
 
+	trace_xfs_zone_record_blocks(oz,
+		xfs_rtb_to_rgbno(tp->t_mountp, new->br_startblock),
+		new->br_blockcount);
 	xfs_rtgroup_lock(rtg, XFS_RTGLOCK_RMAP);
 	xfs_rtgroup_trans_join(tp, rtg, XFS_RTGLOCK_RMAP);
 	rmapip->i_used_blocks += new->br_blockcount;
-- 
2.47.3


^ permalink raw reply related	[flat|nested] 11+ messages in thread

* Re: [PATCH v2 4/4] xfs: opencode xfs_zone_record_blocks
  2026-03-18  8:14   ` Christoph Hellwig
@ 2026-03-18  8:33     ` Carlos Maiolino
  0 siblings, 0 replies; 11+ messages in thread
From: Carlos Maiolino @ 2026-03-18  8:33 UTC (permalink / raw)
  To: Christoph Hellwig; +Cc: linux-xfs, dlemoal

On Wed, Mar 18, 2026 at 09:14:31AM +0100, Christoph Hellwig wrote:
> On Tue, Mar 10, 2026 at 06:36:49PM +0100, cem@kernel.org wrote:
> > From: Carlos Maiolino <cem@kernel.org>
> > 
> > We only have a single caller, no need to keep it in its own function.
> 
> This accidentally dropped the record_blocks trace event.  The patch
> below adds it back.  Feel free to fold it in if that works for you.

Woops, thanks. I'm folding it into the original patch adding a small
note there.
Thanks!

> 
> ---
> From 6e413887a36cd91af3684d8af357b50538106bea Mon Sep 17 00:00:00 2001
> From: Christoph Hellwig <hch@lst.de>
> Date: Wed, 18 Mar 2026 08:58:38 +0100
> Subject: xfs: add back the xfs_zone_record_blocks trace event
> 
> Commit 54514abb9891 ("xfs: opencode xfs_zone_record_blocks")
> accidentally removed it.
> 
> Signed-off-by: Christoph Hellwig <hch@lst.de>
> ---
>  fs/xfs/xfs_zone_alloc.c | 3 +++
>  1 file changed, 3 insertions(+)
> 
> diff --git a/fs/xfs/xfs_zone_alloc.c b/fs/xfs/xfs_zone_alloc.c
> index 7d712d5a5ce0..9d02160c5334 100644
> --- a/fs/xfs/xfs_zone_alloc.c
> +++ b/fs/xfs/xfs_zone_alloc.c
> @@ -291,6 +291,9 @@ xfs_zoned_map_extent(
>  		}
>  	}
>  
> +	trace_xfs_zone_record_blocks(oz,
> +		xfs_rtb_to_rgbno(tp->t_mountp, new->br_startblock),
> +		new->br_blockcount);
>  	xfs_rtgroup_lock(rtg, XFS_RTGLOCK_RMAP);
>  	xfs_rtgroup_trans_join(tp, rtg, XFS_RTGLOCK_RMAP);
>  	rmapip->i_used_blocks += new->br_blockcount;
> -- 
> 2.47.3
> 
> 

^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2026-03-18  8:33 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-03-10 17:36 [PATCH v2 0/4] Zoned device cleanups cem
2026-03-10 17:36 ` [PATCH v2 1/4] xfs: factor out isize updates from xfs_dio_write_end_io cem
2026-03-11  7:03   ` Damien Le Moal
2026-03-12  6:52   ` Christoph Hellwig
2026-03-10 17:36 ` [PATCH v2 2/4] xfs: factor out xfs_dio_write_zoned_end_io cem
2026-03-11  7:03   ` Damien Le Moal
2026-03-10 17:36 ` [PATCH v2 3/4] xfs: factor out xfs_zone_inc_written cem
2026-03-10 17:36 ` [PATCH v2 4/4] xfs: opencode xfs_zone_record_blocks cem
2026-03-18  8:14   ` Christoph Hellwig
2026-03-18  8:33     ` Carlos Maiolino
2026-03-12  8:37 ` [PATCH v2 0/4] Zoned device cleanups Carlos Maiolino

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.