All of lore.kernel.org
 help / color / mirror / Atom feed
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 02/10] xfs: set lv_bytes in xlog_write_one_vec
Date: Fri, 14 Nov 2025 08:55:14 -0800	[thread overview]
Message-ID: <20251114165514.GF196370@frogsfrogsfrogs> (raw)
In-Reply-To: <20251112121458.915383-3-hch@lst.de>

On Wed, Nov 12, 2025 at 01:14:18PM +0100, Christoph Hellwig wrote:
> lv_bytes is mostly just use by the CIL code, but has crept into the
> low-level log writing code to decide on a full or partial iclog
> write.  Ensure it is valid even for the special log writes that don't
> go through the CIL by initializing it in xlog_write_one_vec.
> 
> Note that even without this fix, the checkpoint commits would never
> trigger a partial iclog write, as they have no payload beyond the
> opheader.
> 
> The unmount record on the other hand could in theory trigger a an
> overflow of the iclog, but given that is has never been seen in
> the wild this has probably been masked by the small size of it
> and the fact that the unmount process does multiple log forces
> before writing the unmount record and we thus usually operate on
> an empty or almost empty iclog.
> 
> Fixes: 110dc24ad2ae ("xfs: log vector rounding leaks log space")
> Signed-off-by: Christoph Hellwig <hch@lst.de>

Looks good,
Reviewed-by: "Darrick J. Wong" <djwong@kernel.org>

--D

> ---
>  fs/xfs/xfs_log.c | 5 +++--
>  1 file changed, 3 insertions(+), 2 deletions(-)
> 
> diff --git a/fs/xfs/xfs_log.c b/fs/xfs/xfs_log.c
> index ed83a0e3578e..382c55f4d8d2 100644
> --- a/fs/xfs/xfs_log.c
> +++ b/fs/xfs/xfs_log.c
> @@ -858,14 +858,15 @@ xlog_write_one_vec(
>  	struct xfs_log_vec	lv = {
>  		.lv_niovecs	= 1,
>  		.lv_iovecp	= reg,
> +		.lv_bytes	= reg->i_len,
>  	};
>  	LIST_HEAD		(lv_chain);
>  
>  	/* account for space used by record data */
> -	ticket->t_curr_res -= reg->i_len;
> +	ticket->t_curr_res -= lv.lv_bytes;
>  
>  	list_add(&lv.lv_list, &lv_chain);
> -	return xlog_write(log, ctx, &lv_chain, ticket, reg->i_len);
> +	return xlog_write(log, ctx, &lv_chain, ticket, lv.lv_bytes);
>  }
>  
>  /*
> -- 
> 2.47.3
> 
> 

  reply	other threads:[~2025-11-14 16:55 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
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
2025-11-12 12:14 ` [PATCH 02/10] xfs: set lv_bytes in xlog_write_one_vec Christoph Hellwig
2025-11-14 16:55   ` Darrick J. Wong [this message]
2025-11-12 12:14 ` [PATCH 03/10] xfs: improve the ->iop_format interface Christoph Hellwig
2025-11-12 12:14 ` [PATCH 04/10] xfs: move struct xfs_log_iovec to xfs_log_priv.h Christoph Hellwig
2025-11-12 12:14 ` [PATCH 05/10] xfs: move struct xfs_log_vec " Christoph Hellwig
2025-11-12 12:14 ` [PATCH 06/10] xfs: regularize iclog space accounting in xlog_write_partial Christoph Hellwig
2025-11-14 16:55   ` Darrick J. Wong
2025-11-12 12:14 ` [PATCH 07/10] xfs: improve the calling convention for the xlog_write helpers Christoph Hellwig
2025-11-14 16:56   ` Darrick J. Wong
2025-11-12 12:14 ` [PATCH 08/10] xfs: add a xlog_write_space_left helper Christoph Hellwig
2025-11-12 12:14 ` [PATCH 09/10] xfs: improve the iclog space assert in xlog_write_iovec Christoph Hellwig
2025-11-12 12:14 ` [PATCH 10/10] xfs: factor out a xlog_write_space_advance helper Christoph Hellwig
2025-11-24 15:05 ` cleanup log item formatting v3 Carlos Maiolino
  -- strict thread matches above, loose matches on Subject: below --
2025-10-30 14:49 cleanup log item formatting v2 Christoph Hellwig
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

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=20251114165514.GF196370@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.