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 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.