From: Christoph Hellwig <hch@lst.de>
To: Carlos Maiolino <cem@kernel.org>
Cc: linux-xfs@vger.kernel.org
Subject: [PATCH 06/18] xfs: add a xlog_write_one_vec helper
Date: Tue, 15 Jul 2025 14:30:11 +0200 [thread overview]
Message-ID: <20250715123125.1945534-7-hch@lst.de> (raw)
In-Reply-To: <20250715123125.1945534-1-hch@lst.de>
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>
---
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 3179923a68d4..96807140df73 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 f443757e93c2..1ac2cd9a5a36 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 39a102cc1b43..463daf51da15 100644
--- a/fs/xfs/xfs_log_priv.h
+++ b/fs/xfs/xfs_log_priv.h
@@ -511,6 +511,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.2
next prev parent reply other threads:[~2025-07-15 12:31 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-07-15 12:30 misc log cleanups allocation Christoph Hellwig
2025-07-15 12:30 ` [PATCH 01/18] xfs: don't pass the old lv to xfs_cil_prepare_item Christoph Hellwig
2025-07-15 12:30 ` [PATCH 02/18] xfs: cleanup the ordered item logic in xlog_cil_insert_format_items Christoph Hellwig
2025-07-15 12:30 ` [PATCH 03/18] xfs: use better names for size members in xfs_log_vec Christoph Hellwig
2025-07-15 12:30 ` [PATCH 04/18] xfs: don't use a xfs_log_iovec for attr_item names and values Christoph Hellwig
2025-07-15 12:30 ` [PATCH 05/18] xfs: don't use a xfs_log_iovec for ri_buf in log recovery Christoph Hellwig
2025-07-15 12:30 ` Christoph Hellwig [this message]
2025-07-15 12:30 ` [PATCH 07/18] xfs: set lv_bytes in xlog_write_one_vec Christoph Hellwig
2025-07-15 12:30 ` [PATCH 08/18] xfs: improve the ->iop_format interface Christoph Hellwig
2025-07-15 12:30 ` [PATCH 09/18] xfs: move struct xfs_log_iovec to xfs_log_priv.h Christoph Hellwig
2025-07-15 12:30 ` [PATCH 10/18] xfs: move struct xfs_log_vec " Christoph Hellwig
2025-07-15 12:30 ` [PATCH 11/18] xfs: remove the xlog_op_header_t typedef Christoph Hellwig
2025-07-15 12:30 ` [PATCH 12/18] xfs: remove the xfs_trans_header_t typedef Christoph Hellwig
2025-07-15 12:30 ` [PATCH 13/18] xfs: move the XLOG_REG_ constants out of xfs_log_format.h Christoph Hellwig
2025-07-15 12:30 ` [PATCH 14/18] xfs: regularize iclog space accounting in xlog_write_partial Christoph Hellwig
2025-07-15 12:30 ` [PATCH 15/18] xfs: improve the calling convention for the xlog_write helpers Christoph Hellwig
2025-07-15 12:30 ` [PATCH 16/18] xfs: add a xlog_write_space_left helper Christoph Hellwig
2025-07-15 12:30 ` [PATCH 17/18] xfs: improve the iclog space assert in xlog_write_iovec Christoph Hellwig
2025-07-15 12:30 ` [PATCH 18/18] 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=20250715123125.1945534-7-hch@lst.de \
--to=hch@lst.de \
--cc=cem@kernel.org \
--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;
as well as URLs for NNTP newsgroup(s).