From: "Darrick J. Wong" <djwong@kernel.org>
To: Christoph Hellwig <hch@lst.de>
Cc: Carlos Maiolino <cem@kernel.org>, linux-xfs@vger.kernel.org
Subject: Re: [PATCH 10/10] xfs: factor out a xlog_write_space_advance helper
Date: Tue, 4 Nov 2025 15:46:11 -0800 [thread overview]
Message-ID: <20251104234611.GS196370@frogsfrogsfrogs> (raw)
In-Reply-To: <20251030144946.1372887-11-hch@lst.de>
On Thu, Oct 30, 2025 at 03:49:20PM +0100, Christoph Hellwig wrote:
> Add a new xlog_write_space_advance that returns the current place in the
> iclog that data is written to, and advances the various counters by the
> amount taken from xlog_write_iovec, and also use it xlog_write_partial,
> which open codes the counter adjustments, but misses the asserts.
>
> Signed-off-by: Christoph Hellwig <hch@lst.de>
Looks decent,
Reviewed-by: "Darrick J. Wong" <djwong@kernel.org>
--D
> ---
> fs/xfs/xfs_log.c | 32 ++++++++++++++++++++------------
> 1 file changed, 20 insertions(+), 12 deletions(-)
>
> diff --git a/fs/xfs/xfs_log.c b/fs/xfs/xfs_log.c
> index 8b8fdef6414d..511756429336 100644
> --- a/fs/xfs/xfs_log.c
> +++ b/fs/xfs/xfs_log.c
> @@ -1883,21 +1883,31 @@ static inline uint32_t xlog_write_space_left(struct xlog_write_data *data)
> return data->iclog->ic_size - data->log_offset;
> }
>
> +static void *
> +xlog_write_space_advance(
> + struct xlog_write_data *data,
> + unsigned int len)
> +{
> + void *p = data->iclog->ic_datap + data->log_offset;
> +
> + ASSERT(xlog_write_space_left(data) >= len);
> + ASSERT(data->log_offset % sizeof(int32_t) == 0);
> + ASSERT(len % sizeof(int32_t) == 0);
> +
> + data->data_cnt += len;
> + data->log_offset += len;
> + data->bytes_left -= len;
> + return p;
> +}
> +
> static inline void
> xlog_write_iovec(
> struct xlog_write_data *data,
> void *buf,
> uint32_t buf_len)
> {
> - ASSERT(xlog_write_space_left(data) >= buf_len);
> - ASSERT(data->log_offset % sizeof(int32_t) == 0);
> - ASSERT(buf_len % sizeof(int32_t) == 0);
> -
> - memcpy(data->iclog->ic_datap + data->log_offset, buf, buf_len);
> - data->log_offset += buf_len;
> - data->bytes_left -= buf_len;
> + memcpy(xlog_write_space_advance(data, buf_len), buf, buf_len);
> data->record_cnt++;
> - data->data_cnt += buf_len;
> }
>
> /*
> @@ -2038,7 +2048,8 @@ xlog_write_partial(
> if (error)
> return error;
>
> - ophdr = data->iclog->ic_datap + data->log_offset;
> + ophdr = xlog_write_space_advance(data,
> + sizeof(struct xlog_op_header));
> ophdr->oh_tid = cpu_to_be32(data->ticket->t_tid);
> ophdr->oh_clientid = XFS_TRANSACTION;
> ophdr->oh_res2 = 0;
> @@ -2046,9 +2057,6 @@ xlog_write_partial(
>
> data->ticket->t_curr_res -=
> sizeof(struct xlog_op_header);
> - data->log_offset += sizeof(struct xlog_op_header);
> - data->data_cnt += sizeof(struct xlog_op_header);
> - data->bytes_left -= sizeof(struct xlog_op_header);
>
> /*
> * If rlen fits in the iclog, then end the region
> --
> 2.47.3
>
>
next prev parent reply other threads:[~2025-11-04 23:46 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-10-30 14:49 cleanup log item formatting v2 Christoph Hellwig
2025-10-30 14:49 ` [PATCH 01/10] xfs: add a xlog_write_one_vec helper Christoph Hellwig
2025-10-31 23:59 ` Darrick J. Wong
2025-10-30 14:49 ` [PATCH 02/10] xfs: set lv_bytes in xlog_write_one_vec Christoph Hellwig
2025-11-01 0:04 ` Darrick J. Wong
2025-11-03 10:43 ` Christoph Hellwig
2025-11-04 23:39 ` Darrick J. Wong
2025-11-05 13:27 ` Christoph Hellwig
2025-11-05 22:13 ` Darrick J. Wong
2025-10-30 14:49 ` [PATCH 03/10] xfs: improve the ->iop_format interface Christoph Hellwig
2025-11-01 0:15 ` Darrick J. Wong
2025-10-30 14:49 ` [PATCH 04/10] xfs: move struct xfs_log_iovec to xfs_log_priv.h Christoph Hellwig
2025-11-01 1:16 ` Darrick J. Wong
2025-10-30 14:49 ` [PATCH 05/10] xfs: move struct xfs_log_vec " Christoph Hellwig
2025-11-01 1:16 ` Darrick J. Wong
2025-10-30 14:49 ` [PATCH 06/10] xfs: regularize iclog space accounting in xlog_write_partial Christoph Hellwig
2025-11-04 23:53 ` Darrick J. Wong
2025-11-05 13:27 ` Christoph Hellwig
2025-10-30 14:49 ` [PATCH 07/10] xfs: improve the calling convention for the xlog_write helpers Christoph Hellwig
2025-11-01 3:26 ` Darrick J. Wong
2025-11-03 10:46 ` Christoph Hellwig
2025-11-04 23:40 ` Darrick J. Wong
2025-11-05 13:28 ` Christoph Hellwig
2025-10-30 14:49 ` [PATCH 08/10] xfs: add a xlog_write_space_left helper Christoph Hellwig
2025-11-01 3:27 ` Darrick J. Wong
2025-10-30 14:49 ` [PATCH 09/10] xfs: improve the iclog space assert in xlog_write_iovec Christoph Hellwig
2025-11-04 23:45 ` Darrick J. Wong
2025-10-30 14:49 ` [PATCH 10/10] xfs: factor out a xlog_write_space_advance helper Christoph Hellwig
2025-11-04 23:46 ` Darrick J. Wong [this message]
-- strict thread matches above, loose matches on Subject: below --
2025-11-12 12:14 cleanup log item formatting v3 Christoph Hellwig
2025-11-12 12:14 ` [PATCH 10/10] xfs: factor out a xlog_write_space_advance helper Christoph Hellwig
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=20251104234611.GS196370@frogsfrogsfrogs \
--to=djwong@kernel.org \
--cc=cem@kernel.org \
--cc=hch@lst.de \
--cc=linux-xfs@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