]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
xfs: remove xlog_in_core_2_t
authorChristoph Hellwig <hch@lst.de>
Mon, 27 Oct 2025 07:05:53 +0000 (08:05 +0100)
committerCarlos Maiolino <cem@kernel.org>
Wed, 12 Nov 2025 10:09:25 +0000 (11:09 +0100)
commitfe985b910e03fd91193f399a1aca9d1ea22c2557
treeb8416bd5f7aba726364058b6469e3597738b81dd
parent9ed9df98fcd7203c0eeac21e6784bb7cc7a291d3
xfs: remove xlog_in_core_2_t

xlog_in_core_2_t is a really odd type, not only is it grossly
misnamed because it actually is an on-disk structure, but it also
reprents the actual on-disk structure in a rather odd way.

A v1 or small v2 log header look like:

+-----------------------+
|      xlog_record      |
+-----------------------+

while larger v2 log headers look like:

+-----------------------+
|      xlog_record      |
+-----------------------+
|  xlog_rec_ext_header  |
+-------------------+---+
|         .....         |
+-----------------------+
|  xlog_rec_ext_header  |
+-----------------------+

I.e., the ext headers are a variable sized array at the end of the
header.  So instead of declaring a union of xlog_rec_header,
xlog_rec_ext_header and padding to BBSIZE, add the proper padding to
struct struct xlog_rec_header and struct xlog_rec_ext_header, and
add a variable sized array of the latter to the former.  This also
exposes the somewhat unusual scope of the log checksums, which is
made explicitly now by adding proper padding and macro designating
the actual payload length.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Darrick J. Wong <djwong@kernel.org>
Reviewed-by: Carlos Maiolino <cmaiolino@redhat.com>
Signed-off-by: Carlos Maiolino <cem@kernel.org>
fs/xfs/libxfs/xfs_log_format.h
fs/xfs/libxfs/xfs_ondisk.h
fs/xfs/xfs_log.c
fs/xfs/xfs_log_priv.h