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 01/10] xfs: add a xlog_write_one_vec helper
Date: Fri, 31 Oct 2025 16:59:49 -0700 [thread overview]
Message-ID: <20251031235949.GQ3356773@frogsfrogsfrogs> (raw)
In-Reply-To: <20251030144946.1372887-2-hch@lst.de>
On Thu, Oct 30, 2025 at 03:49:11PM +0100, Christoph Hellwig wrote:
> Add a wrapper for xlog_write for the two callers who need to build a
> log_vec and add it to a single-entry chain instead of duplicating the
> code.
>
> Signed-off-by: Christoph Hellwig <hch@lst.de>
This looks like a pretty simple hoist...
Reviewed-by: "Darrick J. Wong" <djwong@kernel.org>
--D
> ---
> fs/xfs/xfs_log.c | 35 +++++++++++++++++++++--------------
> fs/xfs/xfs_log_cil.c | 11 +----------
> fs/xfs/xfs_log_priv.h | 2 ++
> 3 files changed, 24 insertions(+), 24 deletions(-)
>
> diff --git a/fs/xfs/xfs_log.c b/fs/xfs/xfs_log.c
> index a311385b23d8..ed83a0e3578e 100644
> --- a/fs/xfs/xfs_log.c
> +++ b/fs/xfs/xfs_log.c
> @@ -848,6 +848,26 @@ xlog_wait_on_iclog(
> return 0;
> }
>
> +int
> +xlog_write_one_vec(
> + struct xlog *log,
> + struct xfs_cil_ctx *ctx,
> + struct xfs_log_iovec *reg,
> + struct xlog_ticket *ticket)
> +{
> + struct xfs_log_vec lv = {
> + .lv_niovecs = 1,
> + .lv_iovecp = reg,
> + };
> + LIST_HEAD (lv_chain);
> +
> + /* account for space used by record data */
> + ticket->t_curr_res -= reg->i_len;
> +
> + list_add(&lv.lv_list, &lv_chain);
> + return xlog_write(log, ctx, &lv_chain, ticket, reg->i_len);
> +}
> +
> /*
> * Write out an unmount record using the ticket provided. We have to account for
> * the data space used in the unmount ticket as this write is not done from a
> @@ -876,21 +896,8 @@ xlog_write_unmount_record(
> .i_len = sizeof(unmount_rec),
> .i_type = XLOG_REG_TYPE_UNMOUNT,
> };
> - struct xfs_log_vec vec = {
> - .lv_niovecs = 1,
> - .lv_iovecp = ®,
> - };
> - LIST_HEAD(lv_chain);
> - list_add(&vec.lv_list, &lv_chain);
> -
> - BUILD_BUG_ON((sizeof(struct xlog_op_header) +
> - sizeof(struct xfs_unmount_log_format)) !=
> - sizeof(unmount_rec));
> -
> - /* account for space used by record data */
> - ticket->t_curr_res -= sizeof(unmount_rec);
>
> - return xlog_write(log, NULL, &lv_chain, ticket, reg.i_len);
> + return xlog_write_one_vec(log, NULL, ®, ticket);
> }
>
> /*
> diff --git a/fs/xfs/xfs_log_cil.c b/fs/xfs/xfs_log_cil.c
> index 778ac47adb8c..83aa06e19cfb 100644
> --- a/fs/xfs/xfs_log_cil.c
> +++ b/fs/xfs/xfs_log_cil.c
> @@ -1098,13 +1098,7 @@ xlog_cil_write_commit_record(
> .i_len = sizeof(struct xlog_op_header),
> .i_type = XLOG_REG_TYPE_COMMIT,
> };
> - struct xfs_log_vec vec = {
> - .lv_niovecs = 1,
> - .lv_iovecp = ®,
> - };
> int error;
> - LIST_HEAD(lv_chain);
> - list_add(&vec.lv_list, &lv_chain);
>
> if (xlog_is_shutdown(log))
> return -EIO;
> @@ -1112,10 +1106,7 @@ xlog_cil_write_commit_record(
> error = xlog_cil_order_write(ctx->cil, ctx->sequence, _COMMIT_RECORD);
> if (error)
> return error;
> -
> - /* account for space used by record data */
> - ctx->ticket->t_curr_res -= reg.i_len;
> - error = xlog_write(log, ctx, &lv_chain, ctx->ticket, reg.i_len);
> + error = xlog_write_one_vec(log, ctx, ®, ctx->ticket);
> if (error)
> xlog_force_shutdown(log, SHUTDOWN_LOG_IO_ERROR);
> return error;
> diff --git a/fs/xfs/xfs_log_priv.h b/fs/xfs/xfs_log_priv.h
> index 0fe59f0525aa..d2410e78b7f5 100644
> --- a/fs/xfs/xfs_log_priv.h
> +++ b/fs/xfs/xfs_log_priv.h
> @@ -507,6 +507,8 @@ void xlog_print_trans(struct xfs_trans *);
> int xlog_write(struct xlog *log, struct xfs_cil_ctx *ctx,
> struct list_head *lv_chain, struct xlog_ticket *tic,
> uint32_t len);
> +int xlog_write_one_vec(struct xlog *log, struct xfs_cil_ctx *ctx,
> + struct xfs_log_iovec *reg, struct xlog_ticket *ticket);
> void xfs_log_ticket_ungrant(struct xlog *log, struct xlog_ticket *ticket);
> void xfs_log_ticket_regrant(struct xlog *log, struct xlog_ticket *ticket);
>
> --
> 2.47.3
>
>
next prev parent reply other threads:[~2025-10-31 23:59 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 [this message]
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
-- 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 01/10] xfs: add a xlog_write_one_vec 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=20251031235949.GQ3356773@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