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 08/10] xfs: add a xlog_write_space_left helper
Date: Fri, 31 Oct 2025 20:27:10 -0700 [thread overview]
Message-ID: <20251101032710.GW3356773@frogsfrogsfrogs> (raw)
In-Reply-To: <20251030144946.1372887-9-hch@lst.de>
On Thu, Oct 30, 2025 at 03:49:18PM +0100, Christoph Hellwig wrote:
> Various places check how much space is left in the current iclog,
> add a helper for that.
>
> Signed-off-by: Christoph Hellwig <hch@lst.de>
Looks ok,
Reviewed-by: "Darrick J. Wong" <djwong@kernel.org>
--D
> ---
> fs/xfs/xfs_log.c | 22 +++++++++++++---------
> 1 file changed, 13 insertions(+), 9 deletions(-)
>
> diff --git a/fs/xfs/xfs_log.c b/fs/xfs/xfs_log.c
> index 2b1744af8a67..7c751665bc44 100644
> --- a/fs/xfs/xfs_log.c
> +++ b/fs/xfs/xfs_log.c
> @@ -1878,13 +1878,18 @@ xlog_print_trans(
> }
> }
>
> +static inline uint32_t xlog_write_space_left(struct xlog_write_data *data)
> +{
> + return data->iclog->ic_size - data->log_offset;
> +}
> +
> static inline void
> xlog_write_iovec(
> struct xlog_write_data *data,
> void *buf,
> uint32_t buf_len)
> {
> - ASSERT(data->log_offset < data->iclog->ic_log->l_iclog_size);
> + ASSERT(xlog_write_space_left(data) > 0);
> ASSERT(data->log_offset % sizeof(int32_t) == 0);
> ASSERT(buf_len % sizeof(int32_t) == 0);
>
> @@ -1906,7 +1911,7 @@ xlog_write_full(
> {
> int index;
>
> - ASSERT(data->log_offset + data->bytes_left <= data->iclog->ic_size ||
> + ASSERT(data->bytes_left <= xlog_write_space_left(data) ||
> data->iclog->ic_state == XLOG_STATE_WANT_SYNC);
>
> /*
> @@ -1978,7 +1983,7 @@ xlog_write_partial(
> * Hence if there isn't space for region data after the
> * opheader, then we need to start afresh with a new iclog.
> */
> - if (data->iclog->ic_size - data->log_offset <=
> + if (xlog_write_space_left(data) <=
> sizeof(struct xlog_op_header)) {
> error = xlog_write_get_more_iclog_space(data);
> if (error)
> @@ -1986,8 +1991,7 @@ xlog_write_partial(
> }
>
> ophdr = reg->i_addr;
> - rlen = min_t(uint32_t, reg->i_len,
> - data->iclog->ic_size - data->log_offset);
> + rlen = min_t(uint32_t, reg->i_len, xlog_write_space_left(data));
>
> ophdr->oh_tid = cpu_to_be32(data->ticket->t_tid);
> ophdr->oh_len = cpu_to_be32(rlen - sizeof(struct xlog_op_header));
> @@ -2052,13 +2056,13 @@ xlog_write_partial(
> */
> reg_offset += rlen;
> rlen = reg->i_len - reg_offset;
> - if (rlen <= data->iclog->ic_size - data->log_offset)
> + if (rlen <= xlog_write_space_left(data))
> ophdr->oh_flags |= XLOG_END_TRANS;
> else
> ophdr->oh_flags |= XLOG_CONTINUE_TRANS;
>
> rlen = min_t(uint32_t, rlen,
> - data->iclog->ic_size - data->log_offset);
> + xlog_write_space_left(data));
> ophdr->oh_len = cpu_to_be32(rlen);
>
> xlog_write_iovec(data, reg->i_addr + reg_offset, rlen);
> @@ -2135,7 +2139,7 @@ xlog_write(
> if (error)
> return error;
>
> - ASSERT(data.log_offset <= data.iclog->ic_size - 1);
> + ASSERT(xlog_write_space_left(&data) > 0);
>
> /*
> * If we have a context pointer, pass it the first iclog we are
> @@ -2151,7 +2155,7 @@ xlog_write(
> * the partial copy loop which can handle this case.
> */
> if (lv->lv_niovecs &&
> - lv->lv_bytes > data.iclog->ic_size - data.log_offset) {
> + lv->lv_bytes > xlog_write_space_left(&data)) {
> error = xlog_write_partial(lv, &data);
> if (error) {
> /*
> --
> 2.47.3
>
>
next prev parent reply other threads:[~2025-11-01 3:27 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 [this message]
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
-- 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 08/10] xfs: add a xlog_write_space_left 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=20251101032710.GW3356773@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