]> git.ipfire.org Git - thirdparty/xfsprogs-dev.git/log
thirdparty/xfsprogs-dev.git
3 weeks agoxfsprogs: Release v6.19.0 master v6.19.0
Andrey Albershteyn [Wed, 18 Mar 2026 08:49:42 +0000 (09:49 +0100)] 
xfsprogs: Release v6.19.0

Update all the necessary files for a v6.19.0 release.

Signed-off-by: Andrey Albershteyn <aalbersh@kernel.org>
4 weeks agoxfs_io: print more realtime subvolume related information in statfs
Christoph Hellwig [Thu, 12 Mar 2026 07:00:11 +0000 (08:00 +0100)] 
xfs_io: print more realtime subvolume related information in statfs

The statfs call report information from the fs geometry structure.
Add the fields added for realtime group and zoned device support to
this output.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Carlos Maiolino <cmaiolino@redhat.com>
Reviewed-by: Darrick J. Wong <djwong@kernel.org>
4 weeks agoxfs_io: fix fsmap help
Christoph Hellwig [Thu, 12 Mar 2026 06:59:36 +0000 (07:59 +0100)] 
xfs_io: fix fsmap help

By default fsmap prints the reverse mapping for all devices.  Update the
help text to correctly reflect that.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Andrey Albershteyn <aalbersh@kernel.org>
Reviewed-by: "Darrick J. Wong" <djwong@kernel.org>
4 weeks agomkfs: fix log sunit automatic configuration
Darrick J. Wong [Wed, 4 Mar 2026 19:33:15 +0000 (11:33 -0800)] 
mkfs: fix log sunit automatic configuration

This patch fixes ~96% failure rates on fstests on my test fleet, some
of which now have 4k LBA disks with unexciting min/opt io geometry:

# lsblk -t /dev/sda
NAME   ALIGNMENT MIN-IO  OPT-IO PHY-SEC LOG-SEC ROTA SCHED RQ-SIZE   RA WSAME
sda            0   4096 1048576    4096     512    1 bfq       256 2048    0B
# mkfs.xfs -f -N /dev/sda3
meta-data=/dev/sda3              isize=512    agcount=4, agsize=2183680 blks
         =                       sectsz=4096  attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=1
         =                       reflink=1    bigtime=1 inobtcount=1 nrext64=1
         =                       exchange=1   metadir=0
data     =                       bsize=4096   blocks=8734720, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1, parent=1
log      =internal log           bsize=4096   blocks=16384, version=2
         =                       sectsz=4096  sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
         =                       rgcount=0    rgsize=0 extents
         =                       zoned=0      start=0 reserved=0

Note that MIN-IO == PHY-SEC, so dsunit/dswidth are zero.  With this
change, we no longer set the lsunit to the fsblock size if the log
sector size is greater than 512.  Unfortunately, dsunit is also not set,
so mkfs never sets the log sunit and it remains zero.  I think
this causes problems with the log roundoff computation in the kernel:

if (xfs_has_logv2(mp) && mp->m_sb.sb_logsunit > 1)
log->l_iclog_roundoff = mp->m_sb.sb_logsunit;
else
log->l_iclog_roundoff = BBSIZE;

because now the roundoff factor is less than the log sector size.  After
a while, the filesystem cannot be mounted anymore because:

XFS (sda3): Mounting V5 Filesystem 81b8ffa8-383b-4574-a68c-9b8202707a26
XFS (sda3): Corruption warning: Metadata has LSN (4:2729) ahead of current LSN (4:2727). Please unmount and run xfs_repair (>= v4.3) to resolve.
XFS (sda3): log mount/recovery failed: error -22
XFS (sda3): log mount failed

Reverting this patch makes the problem go away, but I think you're
trying to make it so that mkfs will set lsunit = dsunit if dsunit>0 and
the caller didn't specify any -lsunit= parameter, right?

But there's something that just seems off with this whole function.  If
the user provided a -lsunit/-lsu option then we need to validate the
value and either use it if it makes sense, or complain if not.  If the
user didn't specify any option, then we should figure it out
automatically from the other data device geometry options (internal) or
the external log device probing.

But that's not what this function does.  Why would you do this:

else if (cfg->lsectorsize > XLOG_HEADER_SIZE)
lsu = cfg->blocksize; /* lsunit matches filesystem block size */

and then loudly validate that lsu (bytes) is congruent with the fsblock
size?  This is trivially true, but then it disables the "make lsunit use
dsunit if set" logic below:

} else if (cfg->sb_feat.log_version == 2 &&
   cfg->loginternal && cfg->dsunit) {
/* lsunit and dsunit now in fs blocks */
cfg->lsunit = cfg->dsunit;
}

AFAICT, the "lsunit matches fs block size" logic is buggy.  This code
was added with no justification as part of a "reworking" commit
2f44b1b0e5adc4 ("mkfs: rework stripe calculations") back in 2017.  I
think the correct logic is to move the "lsunit matches fs block size"
logic to the no-lsunit-option code after the validation code.

This seems to set sb_logsunit to 4096 on my test VM, to 0 on the even
more boring VMs with 512 physical sectors, and to 262144 with the
scsi_debug device that Lukas Herbolt created with:

# modprobe scsi_debug inq_vendor=XFS_TEST physblk_exp=3 sector_size=512 \
opt_xferlen_exp=9 opt_blks=512 dev_size_mb=100 virtual_gb=1000

We also need to adjust the external log lsunit computation code, which
was omitted from the first version of this patch.

Cc: <linux-xfs@vger.kernel.org> # v4.15.0
Fixes: 2f44b1b0e5adc4 ("mkfs: rework stripe calculations")
Fixes: ca1eb448e116da ("mkfs.xfs fix sunit size on 512e and 4kN disks.")
Link: https://lore.kernel.org/linux-xfs/20250926123829.2101207-2-lukas@herbolt.com/
Signed-off-by: "Darrick J. Wong" <djwong@kernel.org>
Reviewed-by: Christoph Hellwig <hch@lst.de>
4 weeks agomkfs: fix protofile data corruption when in/out file block sizes don't match
Darrick J. Wong [Mon, 2 Mar 2026 20:46:56 +0000 (12:46 -0800)] 
mkfs: fix protofile data corruption when in/out file block sizes don't match

As written in 73fb78e5ee8940, if libxfs_file_write is passed an
unaligned file range to write, it will zero the unaligned regions at the
head and tail of the block.  This is what we want for a newly allocated
(and hence unwritten) block, but this is definitely not what we want
if some other part of the block has already been written.

Fix this by extending the data/hole_pos range to be aligned to the block
size of the new filesystem.  This means we read slightly more, but we
never rewrite blocks in the new filesystem, sidestepping the behavior.

Found by xfs/841 when the test filesystem has a 1k fsblock size.

Cc: <linux-xfs@vger.kernel.org> # v6.13.0
Fixes: 73fb78e5ee8940 ("mkfs: support copying in large or sparse files")
Signed-off-by: "Darrick J. Wong" <djwong@kernel.org>
Reviewed-by: Christoph Hellwig <hch@lst.de>
4 weeks agolibxfs: fix data corruption bug in libxfs_file_write
Darrick J. Wong [Mon, 2 Mar 2026 20:55:34 +0000 (12:55 -0800)] 
libxfs: fix data corruption bug in libxfs_file_write

libxfs_file_write tries to initialize the entire file block buffer,
which includes zeroing the head portion if @pos is not aligned to the
filesystem block size.  However, @buf is the file data to copy in at
position @pos, not the position of the file block.  Therefore, block_off
should be added to b_addr, not buf.

Cc: <linux-xfs@vger.kernel.org> # v6.13.0
Fixes: 73fb78e5ee8940 ("mkfs: support copying in large or sparse files")
Signed-off-by: "Darrick J. Wong" <djwong@kernel.org>
Reviewed-by: Christoph Hellwig <hch@lst.de>
4 weeks agomisc: fix a few memory leaks
Darrick J. Wong [Mon, 2 Mar 2026 19:54:14 +0000 (11:54 -0800)] 
misc: fix a few memory leaks

valgrind caught these while I was trying to debug xfs/841 regression so
fix them.

Signed-off-by: "Darrick J. Wong" <djwong@kernel.org>
Reviewed-by: Christoph Hellwig <hch@lst.de>
5 weeks agodebian: Drop Uploader: Bastian Germann
Bastian Germann [Fri, 20 Feb 2026 17:17:10 +0000 (18:17 +0100)] 
debian: Drop Uploader: Bastian Germann

I am no longer uploading the package to Debian.
The package is the same except for debian/upstream/signing-key.asc
which I have kept on the actual signer's key for the releases.

Signed-off-by: Bastian Germann <bage@debian.org>
Reviewed-by: Darrick J. Wong <djwong@kernel.org>
5 weeks agoxfs: set max_agbno to allow sparse alloc of last full inode chunk
Brian Foster [Sun, 22 Feb 2026 22:41:02 +0000 (14:41 -0800)] 
xfs: set max_agbno to allow sparse alloc of last full inode chunk

Source kernel commit: c360004c0160dbe345870f59f24595519008926f

Sparse inode cluster allocation sets min/max agbno values to avoid
allocating an inode cluster that might map to an invalid inode
chunk. For example, we can't have an inode record mapped to agbno 0
or that extends past the end of a runt AG of misaligned size.

The initial calculation of max_agbno is unnecessarily conservative,
however. This has triggered a corner case allocation failure where a
small runt AG (i.e. 2063 blocks) is mostly full save for an extent
to the EOFS boundary: [2050,13]. max_agbno is set to 2048 in this
case, which happens to be the offset of the last possible valid
inode chunk in the AG. In practice, we should be able to allocate
the 4-block cluster at agbno 2052 to map to the parent inode record
at agbno 2048, but the max_agbno value precludes it.

Note that this can result in filesystem shutdown via dirty trans
cancel on stable kernels prior to commit 9eb775968b68 ("xfs: walk
all AGs if TRYLOCK passed to xfs_alloc_vextent_iterate_ags") because
the tail AG selection by the allocator sets t_highest_agno on the
transaction. If the inode allocator spins around and finds an inode
chunk with free inodes in an earlier AG, the subsequent dir name
creation path may still fail to allocate due to the AG restriction
and cancel.

To avoid this problem, update the max_agbno calculation to the agbno
prior to the last chunk aligned agbno in the AG. This is not
necessarily the last valid allocation target for a sparse chunk, but
since inode chunks (i.e. records) are chunk aligned and sparse
allocs are cluster sized/aligned, this allows the sb_spino_align
alignment restriction to take over and round down the max effective
agbno to within the last valid inode chunk in the AG.

Note that even though the allocator improvements in the
aforementioned commit seem to avoid this particular dirty trans
cancel situation, the max_agbno logic improvement still applies as
we should be able to allocate from an AG that has been appropriately
selected. The more important target for this patch however are
older/stable kernels prior to this allocator rework/improvement.

Fixes: 56d1115c9bc7 ("xfs: allocate sparse inode chunks on full chunk allocation failure")
Signed-off-by: Brian Foster <bfoster@redhat.com>
Reviewed-by: Darrick J. Wong <djwong@kernel.org>
Signed-off-by: Carlos Maiolino <cem@kernel.org>
5 weeks agoxfs: fix an overly long line in xfs_rtgroup_calc_geometry
Christoph Hellwig [Sun, 22 Feb 2026 22:41:02 +0000 (14:41 -0800)] 
xfs: fix an overly long line in xfs_rtgroup_calc_geometry

Source kernel commit: baed03efe223b1649320e835d7e0c03b3dde0b0c

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Darrick J. Wong <djwong@kernel.org>
Signed-off-by: Carlos Maiolino <cem@kernel.org>
5 weeks agoxfs: mark __xfs_rtgroup_extents static
Christoph Hellwig [Sun, 22 Feb 2026 22:41:01 +0000 (14:41 -0800)] 
xfs: mark __xfs_rtgroup_extents static

Source kernel commit: e0aea42a32984a6fd13410aed7afd3bd0caeb1c1

__xfs_rtgroup_extents is not used outside of xfs_rtgroup.c, so mark it
static.  Move it and xfs_rtgroup_extents up in the file to avoid forward
declarations.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Darrick J. Wong <djwong@kernel.org>
Signed-off-by: Carlos Maiolino <cem@kernel.org>
5 weeks agoxfs: validate that zoned RT devices are zone aligned
Christoph Hellwig [Sun, 22 Feb 2026 22:41:01 +0000 (14:41 -0800)] 
xfs: validate that zoned RT devices are zone aligned

Source kernel commit: 982d2616a2906113e433fdc0cfcc122f8d1bb60a

Garbage collection assumes all zones contain the full amount of blocks.
Mkfs already ensures this happens, but make the kernel check it as well
to avoid getting into trouble due to fuzzers or mkfs bugs.

Fixes: 2167eaabe2fa ("xfs: define the zoned on-disk format")
Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Darrick J. Wong <djwong@kernel.org>
Signed-off-by: Carlos Maiolino <cem@kernel.org>
5 weeks agoxfs: remove xarray mark for reclaimable zones
Hans Holmberg [Sun, 22 Feb 2026 22:41:01 +0000 (14:41 -0800)] 
xfs: remove xarray mark for reclaimable zones

Source kernel commit: bf3b8e915215ef78319b896c0ccc14dc57dac80f

We can easily check if there are any reclaimble zones by just looking
at the used counters in the reclaim buckets, so do that to free up the
xarray mark we currently use for this purpose.

Signed-off-by: Hans Holmberg <hans.holmberg@wdc.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Carlos Maiolino <cem@kernel.org>
5 weeks agoxfs: remove the xlog_rec_header_t typedef
Christoph Hellwig [Sun, 22 Feb 2026 22:41:00 +0000 (14:41 -0800)] 
xfs: remove the xlog_rec_header_t typedef

Source kernel commit: ef1e275638fe6f6d54c18a770c138e4d5972b280

There are almost no users of the typedef left, kill it and switch the
remaining users to use the underlying struct.

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>
5 weeks agoxfs: remove xlog_in_core_2_t
Christoph Hellwig [Sun, 22 Feb 2026 22:41:00 +0000 (14:41 -0800)] 
xfs: remove xlog_in_core_2_t

Source kernel commit: fe985b910e03fd91193f399a1aca9d1ea22c2557

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>
5 weeks agoxfs: add a XLOG_CYCLE_DATA_SIZE constant
Christoph Hellwig [Sun, 22 Feb 2026 22:41:00 +0000 (14:41 -0800)] 
xfs: add a XLOG_CYCLE_DATA_SIZE constant

Source kernel commit: 74d975ed6c9f8ba44179502a8ad5a839b38e8630

The XLOG_HEADER_CYCLE_SIZE / BBSIZE expression is used a lot
in the log code, give it a symbolic name.

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>
5 weeks agoxfs: use a lockref for the xfs_dquot reference count
Christoph Hellwig [Sun, 22 Feb 2026 22:41:00 +0000 (14:41 -0800)] 
xfs: use a lockref for the xfs_dquot reference count

Source kernel commit: 0c5e80bd579f7bec3704bad6c1f72b13b0d73b53

The xfs_dquot structure currently uses the anti-pattern of using the
in-object lock that protects the content to also serialize reference
count updates for the structure, leading to a cumbersome free path.
This is partially papered over by the fact that we never free the dquot
directly but always through the LRU.  Switch to use a lockref instead and
move the reference counter manipulations out of q_qlock.

To make this work, xfs_qm_flush_one and xfs_qm_flush_one are converted to
acquire a dquot reference while flushing to integrate with the lockref
"get if not dead" scheme.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Darrick J. Wong <djwong@kernel.org>
Signed-off-by: Carlos Maiolino <cem@kernel.org>
5 weeks agoxfs: add a xfs_groups_to_rfsbs helper
Christoph Hellwig [Sun, 22 Feb 2026 22:40:59 +0000 (14:40 -0800)] 
xfs: add a xfs_groups_to_rfsbs helper

Source kernel commit: 0ec73eb3f12350799c4b3fb764225f6e38b42d1e

Plus a rtgroup wrapper and use that to avoid overflows when converting
zone/rtg counts to block counts.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Darrick J. Wong <djwong@kernel.org>
Signed-off-by: Carlos Maiolino <cem@kernel.org>
5 weeks agoxfs: error tag to force zeroing on debug kernels
Brian Foster [Sun, 22 Feb 2026 22:40:59 +0000 (14:40 -0800)] 
xfs: error tag to force zeroing on debug kernels

Source kernel commit: 66d78a11479cfea00e8d1d9d3e33f3db1597e6bf

iomap_zero_range() has to cover various corner cases that are
difficult to test on production kernels because it is used in fairly
limited use cases. For example, it is currently only used by XFS and
mostly only in partial block zeroing cases.

While it's possible to test most of these functional cases, we can
provide more robust test coverage by co-opting fallocate zero range
to invoke zeroing of the entire range instead of the more efficient
block punch/allocate sequence. Add an errortag to occasionally
invoke forced zeroing.

Signed-off-by: Brian Foster <bfoster@redhat.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Darrick J. Wong <djwong@kernel.org>
Signed-off-by: Christian Brauner <brauner@kernel.org>
7 weeks agomkfs.xfs fix sunit size on 512e and 4kN disks.
Lukas Herbolt [Thu, 19 Feb 2026 11:44:09 +0000 (12:44 +0100)] 
mkfs.xfs fix sunit size on 512e and 4kN disks.

Creating of XFS on 4kN or 512e disk result in suboptimal LSU/LSUNIT.
As of now we check if the sectorsize is bigger than XLOG_HEADER_SIZE
and so we set lsu to blocksize. But we do not check the the size if
lsunit can be bigger to fit the disk geometry.

Signed-off-by: Lukas Herbolt <lukas@herbolt.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
2 months agoxfs_scrub_all: fix non-service-mode arguments to xfs_scrub
Darrick J. Wong [Mon, 2 Feb 2026 19:14:05 +0000 (11:14 -0800)] 
xfs_scrub_all: fix non-service-mode arguments to xfs_scrub

Back in commit 7da76e2745d6a7, we changed the default arguments to
xfs_scrub for the xfs_scrub@ service to derive the fix/preen/check mode
from the "autofsck" filesystem property instead of hardcoding "-p".
Unfortunately, I forgot to make the same update for xfs_scrub_all being
run from the CLI and directly invoking xfs_scrub.

Link: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1125314
Cc: linux-xfs@vger.kernel.org # v6.10.0
Fixes: 7da76e2745d6a7 ("xfs_scrub: use the autofsck fsproperty to select mode")
Signed-off-by: Darrick J. Wong <djwong@kernel.org>
Reviewed-by: Christoph Hellwig <hch@lst.de>
2 months agolibfrog: enable cached report zones
Christoph Hellwig [Wed, 28 Jan 2026 04:32:59 +0000 (05:32 +0100)] 
libfrog: enable cached report zones

Modify the function xfrog_report_zones() to default to always trying
first a cached report zones using the BLKREPORTZONEV2 ioctl.
If the kernel does not support BLKREPORTZONEV2, fall back to the
(slower) regular report zones BLKREPORTZONE ioctl.

TO enable this feature even if xfsprogs is compiled on a system where
linux/blkzoned.h does not define BLKREPORTZONEV2, this ioctl is defined
in libfrog/zones.h, together with the BLK_ZONE_REP_CACHED flag and the
BLK_ZONE_COND_ACTIVE zone condition.

Since a cached report zone  always return the condition
BLK_ZONE_COND_ACTIVE for any zone that is implicitly open, explicitly
open or closed, the function xfs_zone_validate_seq() is modified to
handle this new condition as being equivalent to the implicit open,
explicit open or closed conditions.

Signed-off-by: Damien Le Moal <dlemoal@kernel.org>
[hch: don't try cached reporting again if not supported]
Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Darrick J. Wong <djwong@kernel.org>
2 months agolibfrog: lift common zone reporting code from mkfs and repair
Damien Le Moal [Wed, 28 Jan 2026 04:32:58 +0000 (05:32 +0100)] 
libfrog: lift common zone reporting code from mkfs and repair

Define the new helper function xfrog_report_zones() to report zones of
a zoned block device.  This function is implemented in the new file
libfrog/zones.c and defined in the header file libfrog/zones.h and
use it from mkfs and repair instead of the previous open coded versions.

xfrog_report_zones() allocates and returns a struct blk_zone_report
structure, which can be be reused by subsequent invocations.  It is the
responsibility of the caller to free this structure after use.

Signed-off-by: Damien Le Moal <dlemoal@kernel.org>
[hch: refactored to allow buffer reuse]
Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Darrick J. Wong <djwong@kernel.org>
2 months agomkfs: remove unnecessary return value affectation
Damien Le Moal [Wed, 28 Jan 2026 04:32:57 +0000 (05:32 +0100)] 
mkfs: remove unnecessary return value affectation

The function report_zones() in mkfs/xfs_mkfs.c is a void function. So
there is no need to set the variable ret to -EIO before returning if
fstat() fails.

Fixes: 2e5a737a61d3 ("xfs_mkfs: support creating file system with zoned RT devices")
Signed-off-by: Damien Le Moal <dlemoal@kernel.org>
Reviewed-by: Darrick J. Wong <djwong@kernel.org>
Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Christoph Hellwig <hch@lst.de>
2 months agoxfs: use blkdev_report_zones_cached()
Damien Le Moal [Wed, 28 Jan 2026 04:32:56 +0000 (05:32 +0100)] 
xfs: use blkdev_report_zones_cached()

Source kernel commit: e04ccfc28252f181ea8d469d834b48e7dece65b2

Modify xfs_mount_zones() to replace the call to blkdev_report_zones()
with blkdev_report_zones_cached() to speed-up mount operations.
Since this causes xfs_zone_validate_seq() to see zones with the
BLK_ZONE_COND_ACTIVE condition, this function is also modified to acept
this condition as valid.

With this change, mounting a freshly formatted large capacity (30 TB)
SMR HDD completes under 2s compared to over 4.7s before.

Signed-off-by: Damien Le Moal <dlemoal@kernel.org>
Reviewed-by: Martin K. Petersen <martin.petersen@oracle.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Signed-off-by: Christoph Hellwig <hch@lst.de>
2 months agoinclude blkzoned.h in platform_defs.h
Christoph Hellwig [Wed, 28 Jan 2026 04:32:55 +0000 (05:32 +0100)] 
include blkzoned.h in platform_defs.h

We'll need to conditionally add definitions added in later version of
blkzoned.h soon.  The right place for that is platform_defs.h, which
means blkzoned.h needs to be included there for cpp trickery to work.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Darrick J. Wong <djwong@kernel.org>
Reviewed-by: Damien Le Moal <dlemoal@kernel.org>
2 months agodebian: don't explicitly reload systemd from postinst
Darrick J. Wong [Tue, 20 Jan 2026 17:51:51 +0000 (09:51 -0800)] 
debian: don't explicitly reload systemd from postinst

Now that we use dh_installsystemd, it's no longer necessary to run
systemctl daemon-reload explicitly from postinst because
dh_installsystemd will inject that into the DEBHELPER section on its
own.

Signed-off-by: Darrick J. Wong <djwong@kernel.org>
Reviewed-by: Christoph Hellwig <hch@lst.de>
2 months agoxfs_mdrestore: fix restoration on filesystems with 4k sectors
Darrick J. Wong [Tue, 20 Jan 2026 17:51:35 +0000 (09:51 -0800)] 
xfs_mdrestore: fix restoration on filesystems with 4k sectors

Running xfs/129 on a disk with 4k LBAs produces the following failure:

 --- /run/fstests/bin/tests/xfs/129.out 2025-07-15 14:41:40.210489431 -0700
 +++ /run/fstests/logs/xfs/129.out.bad 2026-01-05 21:43:08.814485633 -0800
 @@ -2,3 +2,8 @@ QA output created by 129
  Create the original file blocks
  Reflink every other block
  Create metadump file, restore it and check restored fs
 +xfs_mdrestore: Invalid superblock disk address/length
 +mount: /opt: can't read superblock on /dev/loop0.
 +       dmesg(1) may have more information after failed mount system call.
 +mount /dev/loop0 /opt failed
 +(see /run/fstests/logs/xfs/129.full for details)

This is a failure to restore a v2 metadump to /dev/loop0.  Looking at
the metadump itself, the first xfs_meta_extent contains:

{
.xme_addr = 0,
.xme_len = 8,
}

Hrm.  This is the primary superblock on the data device, with a length
of 8x512B = 4K.  The original filesystem has this geometry:

# xfs_info /dev/sda4
meta-data=/dev/sda4              isize=512    agcount=4, agsize=2183680 blks
         =                       sectsz=4096  attr=2, projid32bit=1

In other words, a sector size of 4k because the device's LBA size is 4k.
Regrettably, the metadump validation in mdrestore assumes that the
primary superblock is only 512 bytes long, which is not correct for this
scenario.

Fix this by allowing an xme_len value of up to the maximum sector size
for xfs, which is 32k.  Also remove a redundant and confusing mask check
for the xme_addr.

Note that this error was masked (at least on little-endian platforms
that most of us test on) until recent commit 98f05de13e7815 ("mdrestore:
fix restore_v2() superblock length check") which is why I didn't spot it
earlier.

Cc: linux-xfs@vger.kernel.org # v6.6.0
Fixes: fa9f484b79123c ("mdrestore: Define mdrestore ops for v2 format")
Signed-off-by: Darrick J. Wong <djwong@kernel.org>
Reviewed-by: Christoph Hellwig <hch@lst.de>
2 months agomkfs: quiet down warning about insufficient write zones
Darrick J. Wong [Tue, 20 Jan 2026 17:51:19 +0000 (09:51 -0800)] 
mkfs: quiet down warning about insufficient write zones

xfs/067 fails with the following weird mkfs message:

 --- tests/xfs/067.out 2025-07-15 14:41:40.191273467 -0700
 +++ /run/fstests/logs/xfs/067.out.bad 2026-01-06 16:59:11.907677987 -0800
 @@ -1,4 +1,8 @@
  QA output created by 067
 +Warning: not enough zones (134/133) for backing requested rt size due to
 +over-provisioning needs, writable size will be less than (null)
 +Warning: not enough zones (134/133) for backing requested rt size due to
 +over-provisioning needs, writable size will be less than (null)

In this case, MKFS_OPTIONS is set to: "-rrtdev=/dev/sdb4 -m
metadir=1,autofsck=1,uquota,gquota,pquota -d rtinherit=1 -r zoned=1
/dev/sda4"

In other words, we didn't pass an explicit rt volume size to mkfs, so
the message is a bit bogus.  Let's skip printing the message when
the user did not provide an explicit rtsize parameter.

Cc: linux-xfs@vger.kernel.org # v6.18.0
Fixes: b5d372d96db1ad ("mkfs: adjust_nr_zones for zoned file system on conventional devices")
Signed-off-by: Darrick J. Wong <djwong@kernel.org>
Reviewed-by: Christoph Hellwig <hch@lst.de>
2 months agoxfs_logprint: print log data to the screen in host-endian order
Darrick J. Wong [Tue, 20 Jan 2026 17:51:04 +0000 (09:51 -0800)] 
xfs_logprint: print log data to the screen in host-endian order

Add a cli option so that users won't have to byteswap u32 values when
they're digging through broken logs on little-endian systems.  Also make
it more obvious which column is the offset and which are the byte(s).

Signed-off-by: Darrick J. Wong <djwong@kernel.org>
Reviewed-by: Christoph Hellwig <hch@lst.de>
2 months agomkfs: set rtstart from user-specified dblocks
Darrick J. Wong [Tue, 20 Jan 2026 17:50:48 +0000 (09:50 -0800)] 
mkfs: set rtstart from user-specified dblocks

generic/211 fails to format the disk on a system with an internal zoned
device.  Poking through the shell scripts, it's apparently doing this:

# mkfs.xfs -d size=629145600 -r size=629145600 -b size=4096 -m metadir=1,autofsck=1,uquota,gquota,pquota, -r zoned=1 -d rtinherit=1 /dev/sdd
size 629145600 specified for data subvolume is too large, maximum is 131072 blocks

Strange -- we asked for 629M data and rt sections, the device is 20GB in
size, but it claims insufficient space in the data subvolume.

Further analysis shows that open_devices is setting rtstart to 1% of the
size of the data volume (or no less than 300M) and rounding that up to
the nearest power of two (512M).  Hence the 131072 number.

But wait, we said that we wanted a 629M data section.  Let's set rtstart
to the same value if the user didn't already provide one, instead of
using the default value.

Cc: linux-xfs@vger.kernel.org # v6.15.0
Fixes: 2e5a737a61d34e ("xfs_mkfs: support creating file system with zoned RT devices")
Signed-off-by: Darrick J. Wong <djwong@kernel.org>
Reviewed-by: Christoph Hellwig <hch@lst.de>
3 months agoxfsprogs: Release v6.18.0 v6.18.0
Andrey Albershteyn [Wed, 24 Dec 2025 15:34:39 +0000 (16:34 +0100)] 
xfsprogs: Release v6.18.0

Update all the necessary files for a v6.18.0 release.

Signed-off-by: Andrey Albershteyn <aalbersh@kernel.org>
3 months agomkfs: adjust_nr_zones for zoned file system on conventional devices
Christoph Hellwig [Thu, 18 Dec 2025 16:09:32 +0000 (17:09 +0100)] 
mkfs: adjust_nr_zones for zoned file system on conventional devices

When creating zoned file systems on conventional devices, mkfs doesn't
currently align the RT device size to the zone size, which can create
unmountable file systems.  Fix this by moving the rgcount modification
to account for reserved zoned and then calling adjust_nr_zones
unconditionally, and thus ensuring that the rtblocks and rtextents values
are guaranteed to always be a multiple of the zone size.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Darrick J. Wong <djwong@kernel.org>
3 months agoxfs_logprint: fix pointer bug
Darrick J. Wong [Tue, 9 Dec 2025 20:57:38 +0000 (12:57 -0800)] 
xfs_logprint: fix pointer bug

generic/055 captures a crash in xfs_logprint due to an incorrect
refactoring trying to increment a pointer-to-pointer whereas before it
incremented a pointer.

Fixes: 5a9b7e95140893 ("logprint: factor out a xlog_print_op helper")
Signed-off-by: Darrick J. Wong <djwong@kernel.org>
Reviewed-by: Christoph Hellwig <hch@lst.de>
3 months agomdrestore: fix restore_v2() superblock length check
Pavel Reichl [Tue, 9 Dec 2025 22:58:52 +0000 (23:58 +0100)] 
mdrestore: fix restore_v2() superblock length check

On big-endian architectures (e.g. s390x), restoring a filesystem from a
v2 metadump fails with "Invalid superblock disk address/length". This is
caused by restore_v2() treating a superblock extent length of 1 as an
error, even though a length of 1 is expected because the superblock fits
within a 512-byte sector.

On little-endian systems, the same raw extent length bytes that represent
a value of 1 on big-endian are misinterpreted as 16777216 due to byte
ordering, so the faulty check never triggers there and the bug is hidden.

Fix the issue by using an endian-correct comparison of xme_len so that
the superblock extent length is validated properly and consistently on
all architectures.

Signed-off-by: Pavel Reichl <preichl@redhat.com>
Reviewed-by: Darrick J. Wong <djwong@kernel.org>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Chandan Babu R <chandanbabu@kernel.org>
3 months agorepair: enhance process_dinode_metafile
Christoph Hellwig [Wed, 10 Dec 2025 05:54:41 +0000 (06:54 +0100)] 
repair: enhance process_dinode_metafile

Explicitly list the destiny of each metafile inode type, and warn about
unexpected types instead of just silently zapping them.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Carlos Maiolino <cmaiolino@redhat.com>
Reviewed-by: Darrick J. Wong <djwong@kernel.org>
3 months agorepair: factor out a process_dinode_metafile helper
Christoph Hellwig [Wed, 10 Dec 2025 05:54:40 +0000 (06:54 +0100)] 
repair: factor out a process_dinode_metafile helper

Split the metafile logic from process_dinode_int into a separate
helper.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Carlos Maiolino <cmaiolino@redhat.com>
Reviewed-by: Darrick J. Wong <djwong@kernel.org>
3 months agorepair: add canonical names for the XR_INO_ constants
Christoph Hellwig [Wed, 10 Dec 2025 05:54:39 +0000 (06:54 +0100)] 
repair: add canonical names for the XR_INO_ constants

Add an array with the canonical name for each inode type so that code
doesn't have to implement switch statements for that, and remove the now
trivial process_misc_ino_types and process_misc_ino_types_blocks
functions.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Carlos Maiolino <cmaiolino@redhat.com>
Reviewed-by: Darrick J. Wong <djwong@kernel.org>
3 months agorepair: add a enum for the XR_INO_* values
Christoph Hellwig [Wed, 10 Dec 2025 05:54:38 +0000 (06:54 +0100)] 
repair: add a enum for the XR_INO_* values

Move the XR_INO_ definitions into dinode.c as they aren't used anywhere
else, and turn them into an enum to improve type safety.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Carlos Maiolino <cmaiolino@redhat.com>
Reviewed-by: Darrick J. Wong <djwong@kernel.org>
4 months agomkfs: add 2025 LTS config file
Darrick J. Wong [Tue, 9 Dec 2025 16:16:24 +0000 (08:16 -0800)] 
mkfs: add 2025 LTS config file

Add a new configuration file with the defaults as of 6.18 LTS.

Signed-off-by: Darrick J. Wong <djwong@kernel.org>
Reviewed-by: Christoph Hellwig <hch@lst.de>
4 months agomkfs: enable new features by default
Darrick J. Wong [Tue, 9 Dec 2025 16:16:08 +0000 (08:16 -0800)] 
mkfs: enable new features by default

Since the LTS is coming up, enable parent pointers and exchange-range by
default for all users.  Also fix up an out of date comment.

I created a really stupid benchmarking script that does:

#!/bin/bash

# pptr overhead benchmark

umount /opt /mnt
rmmod xfs
for i in 1 0; do
umount /opt
mkfs.xfs -f /dev/sdb -n parent=$i | grep -i parent=
mount /dev/sdb /opt
mkdir -p /opt/foo
for ((i=0;i<5;i++)); do
time fsstress -n 100000 -p 4 -z -f creat=1 -d /opt/foo -s 1
done
done

This is the result of creating an enormous number of empty files in a
single directory:

# ./dumb.sh
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1, parent=0
real    0m18.807s
user    0m2.169s
sys     0m54.013s

naming   =version 2              bsize=4096   ascii-ci=0, ftype=1, parent=1
real    0m20.654s
user    0m2.374s
sys     1m4.441s

As you can see, there's a 10% increase in runtime here.  If I make the
workload a bit more representative by changing the -f argument to
include a directory tree workout:

-f creat=1,mkdir=1,mknod=1,rmdir=1,unlink=1,link=1,rename=1

naming   =version 2              bsize=4096   ascii-ci=0, ftype=1, parent=1
real    0m12.742s
user    0m28.074s
sys     0m10.839s

naming   =version 2              bsize=4096   ascii-ci=0, ftype=1, parent=0
real    0m12.782s
user    0m28.892s
sys     0m8.897s

Almost no difference here.  If I then actually write to the regular
files by adding:

-f write=1

naming   =version 2              bsize=4096   ascii-ci=0, ftype=1, parent=1
real    0m16.668s
user    0m21.709s
sys     0m15.425s

naming   =version 2              bsize=4096   ascii-ci=0, ftype=1, parent=0
real    0m15.562s
user    0m21.740s
sys     0m12.927s

So that's about a 2% difference.

Signed-off-by: Darrick J. Wong <djwong@kernel.org>
Reviewed-by: Christoph Hellwig <hch@lst.de>
4 months agolibfrog: fix incorrect FS_IOC_FSSETXATTR argument to ioctl()
Arkadiusz MiÅ›kiewicz [Fri, 5 Dec 2025 14:31:48 +0000 (15:31 +0100)] 
libfrog: fix incorrect FS_IOC_FSSETXATTR argument to ioctl()

xfsprogs 6.17.0 has broken project quota due to incorrect argument
passed to FS_IOC_FSSETXATTR ioctl(). Instead of passing struct fsxattr,
struct file_attr was passed.

# LC_ALL=C /usr/sbin/xfs_quota -x -c "project -s -p /home/xxx 389701" /home
Setting up project 389701 (path /home/xxx)...
xfs_quota: cannot set project on /home/xxx: Invalid argument
Processed 1 (/etc/projects and cmdline) paths for project 389701 with
recursion depth infinite (-1).

ioctl(5, FS_IOC_FSSETXATTR, {fsx_xflags=FS_XFLAG_PROJINHERIT|FS_XFLAG_HASATTR, fsx_extsize=0, fsx_projid=0, fsx_cowextsize=389701}) = -1 EINVAL (Invalid argument)

There seems to be a double mistake which hides the original ioctl()
argument bug on old kernel with xfsprogs built against it. The size of
fa_xflags was also wrong in xfsprogs's linux.h header. This way when
xfsprogs is compiled on newer kernel but used with older kernel this bug
uncovers.

Reviewed-by: Darrick J. Wong <djwong@kernel.org>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Arkadiusz Miśkiewicz <arekm@maven.pl>
Signed-off-by: Andrey Albershteyn <aalbersh@kernel.org>
4 months agoxfs: prevent gc from picking the same zone twice
Christoph Hellwig [Fri, 5 Dec 2025 15:04:33 +0000 (16:04 +0100)] 
xfs: prevent gc from picking the same zone twice

Source kernel commit: 83bac569c762651ac6dff9a86f54ecc13d911f7d

When we are picking a zone for gc it might already be in the pipeline
which can lead to us moving the same data twice resulting in in write
amplification and a very unfortunate case where we keep on garbage
collecting the zone we just filled with migrated data stopping all
forward progress.

Fix this by introducing a count of on-going GC operations on a zone, and
skip any zone with ongoing GC when picking a new victim.

Fixes: 080d01c41 ("xfs: implement zoned garbage collection")
Signed-off-by: Hans Holmberg <hans.holmberg@wdc.com>
Co-developed-by: Hans Holmberg <hans.holmberg@wdc.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Damien Le Moal <dlemoal@kernel.org>
Reviewed-by: Carlos Maiolino <cmaiolino@redhat.com>
Reviewed-by: Darrick J. Wong <djwong@kernel.org>
Tested-by: Damien Le Moal <dlemoal@kernel.org>
Signed-off-by: Carlos Maiolino <cem@kernel.org>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Andrey Albershteyn <aalbersh@kernel.org>
4 months agoxfs: improve default maximum number of open zones
Damien Le Moal [Fri, 5 Dec 2025 15:04:24 +0000 (16:04 +0100)] 
xfs: improve default maximum number of open zones

Source kernel commit: ff3d90903f8f525eedb26efe6fea03c39476cb69

For regular block devices using the zoned allocator, the default
maximum number of open zones is set to 1/4 of the number of realtime
groups. For a large capacity device, this leads to a very large limit.
E.g. with a 26 TB HDD:

mount /dev/sdb /mnt
...
XFS (sdb): 95836 zones of 65536 blocks size (23959 max open)

In turn such large limit on the number of open zones can lead, depending
on the workload, on a very large number of concurrent write streams
which devices generally do not handle well, leading to poor performance.

Introduce the default limit XFS_DEFAULT_MAX_OPEN_ZONES, defined as 128
to match the hardware limit of most SMR HDDs available today, and use
this limit to set mp->m_max_open_zones in xfs_calc_open_zones() instead
of calling xfs_max_open_zones(), when the user did not specify a limit
with the max_open_zones mount option.

For the 26 TB HDD example, we now get:

mount /dev/sdb /mnt
...
XFS (sdb): 95836 zones of 65536 blocks (128 max open zones)

This change does not prevent the user from specifying a lareger number
for the open zones limit. E.g.

mount -o max_open_zones=4096 /dev/sdb /mnt
...
XFS (sdb): 95836 zones of 65536 blocks (4096 max open zones)

Finally, since xfs_calc_open_zones() checks and caps the
mp->m_max_open_zones limit against the value calculated by
xfs_max_open_zones() for any type of device, this new default limit does
not increase m_max_open_zones for small capacity devices.

Signed-off-by: Damien Le Moal <dlemoal@kernel.org>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Carlos Maiolino <cmaiolino@redhat.com>
Reviewed-by: Darrick J. Wong <djwong@kernel.org>
Signed-off-by: Carlos Maiolino <cem@kernel.org>
Signed-off-by: Andrey Albershteyn <aalbersh@kernel.org>
4 months agoxfs: remove the expr argument to XFS_TEST_ERROR
Christoph Hellwig [Fri, 5 Dec 2025 15:04:17 +0000 (16:04 +0100)] 
xfs: remove the expr argument to XFS_TEST_ERROR

Source kernel commit: 807df3227d7674d7957c576551d552acf15bb96f

Don't pass expr to XFS_TEST_ERROR.  Most calls pass a constant false,
and the places that do pass an expression become cleaner by moving it
out.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Darrick J. Wong <djwong@kernel.org>
Signed-off-by: Carlos Maiolino <cem@kernel.org>
[aalbersh: remove argument from a macro and fix call in defer_item.c]
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Andrey Albershteyn <aalbersh@kernel.org>
4 months agoxfs: move the XLOG_REG_ constants out of xfs_log_format.h
Christoph Hellwig [Fri, 5 Dec 2025 15:04:11 +0000 (16:04 +0100)] 
xfs: move the XLOG_REG_ constants out of xfs_log_format.h

Source kernel commit: 42c21838708c20dd8ba605e4099bf6a7156c3362

These are purely in-memory values and not used at all in xfsprogs.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Darrick J. Wong <djwong@kernel.org>
Signed-off-by: Carlos Maiolino <cem@kernel.org>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Andrey Albershteyn <aalbersh@kernel.org>
4 months agoxfs: fix log CRC mismatches between i386 and other architectures
Christoph Hellwig [Fri, 5 Dec 2025 15:03:59 +0000 (16:03 +0100)] 
xfs: fix log CRC mismatches between i386 and other architectures

Source kernel commit: e747883c7d7306acb4d683038d881528fbfbe749

When mounting file systems with a log that was dirtied on i386 on
other architectures or vice versa, log recovery is unhappy:

[   11.068052] XFS (vdb): Torn write (CRC failure) detected at log block 0x2. Truncating head block from 0xc.

This is because the CRCs generated by i386 and other architectures
always diff.  The reason for that is that sizeof(struct xlog_rec_header)
returns different values for i386 vs the rest (324 vs 328), because the
struct is not sizeof(uint64_t) aligned, and i386 has odd struct size
alignment rules.

This issue goes back to commit 13cdc853c519 ("Add log versioning, and new
super block field for the log stripe") in the xfs-import tree, which
adds log v2 support and the h_size field that causes the unaligned size.
At that time it only mattered for the crude debug only log header
checksum, but with commit 0e446be44806 ("xfs: add CRC checks to the log")
it became a real issue for v5 file system, because now there is a proper
CRC, and regular builds actually expect it match.

Fix this by allowing checksums with and without the padding.

Fixes: 0e446be44806 ("xfs: add CRC checks to the log")
Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Carlos Maiolino <cem@kernel.org>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Andrey Albershteyn <aalbersh@kernel.org>
4 months agoxfs: remove the unused xfs_log_iovec_t typedef
Christoph Hellwig [Fri, 5 Dec 2025 15:03:46 +0000 (16:03 +0100)] 
xfs: remove the unused xfs_log_iovec_t typedef

Source kernel commit: 3e5bdfe48e1f159de7ca3b23a6afa6c10f2a9ad2

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Darrick J. Wong <djwong@kernel.org>
Signed-off-by: Carlos Maiolino <cem@kernel.org>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Andrey Albershteyn <aalbersh@kernel.org>
4 months agoxfs: remove the unused xfs_qoff_logformat_t typedef
Christoph Hellwig [Fri, 5 Dec 2025 15:03:42 +0000 (16:03 +0100)] 
xfs: remove the unused xfs_qoff_logformat_t typedef

Source kernel commit: bf0013f59ccdb283083f0451f6edc50ff98e68c0

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Darrick J. Wong <djwong@kernel.org>
Signed-off-by: Carlos Maiolino <cem@kernel.org>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Andrey Albershteyn <aalbersh@kernel.org>
4 months agoxfs: remove the unused xfs_dq_logformat_t typedef
Christoph Hellwig [Fri, 5 Dec 2025 15:03:38 +0000 (16:03 +0100)] 
xfs: remove the unused xfs_dq_logformat_t typedef

Source kernel commit: ae1ef3272b31e6bccd9f2014e8e8c41887a5137b

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Darrick J. Wong <djwong@kernel.org>
Signed-off-by: Carlos Maiolino <cem@kernel.org>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Andrey Albershteyn <aalbersh@kernel.org>
4 months agoxfs: remove the unused xfs_buf_log_format_t typedef
Christoph Hellwig [Fri, 5 Dec 2025 15:03:32 +0000 (16:03 +0100)] 
xfs: remove the unused xfs_buf_log_format_t typedef

Source kernel commit: 1b5c7cc8f8c54858f69311290d5ade12627ff233

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Darrick J. Wong <djwong@kernel.org>
Signed-off-by: Carlos Maiolino <cem@kernel.org>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Andrey Albershteyn <aalbersh@kernel.org>
4 months agoxfs: remove the unused xfs_efd_log_format_64_t typedef
Christoph Hellwig [Fri, 5 Dec 2025 15:03:28 +0000 (16:03 +0100)] 
xfs: remove the unused xfs_efd_log_format_64_t typedef

Source kernel commit: 3dde08b64c98cf76b2e2378ecf36351464e2972a

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Darrick J. Wong <djwong@kernel.org>
Signed-off-by: Carlos Maiolino <cem@kernel.org>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Andrey Albershteyn <aalbersh@kernel.org>
4 months agoxfs: remove the unused xfs_efd_log_format_32_t typedef
Christoph Hellwig [Fri, 5 Dec 2025 15:03:24 +0000 (16:03 +0100)] 
xfs: remove the unused xfs_efd_log_format_32_t typedef

Source kernel commit: a0cb349672f9ac2dcd80afa3dd25e2df2842db7a

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Darrick J. Wong <djwong@kernel.org>
Signed-off-by: Carlos Maiolino <cem@kernel.org>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Andrey Albershteyn <aalbersh@kernel.org>
4 months agoxfs: remove the xfs_efd_log_format_t typedef
Christoph Hellwig [Fri, 5 Dec 2025 15:03:19 +0000 (16:03 +0100)] 
xfs: remove the xfs_efd_log_format_t typedef

Source kernel commit: 0a33d5ad8a46d1f63174d2684b1d743bd6090554

There are almost no users of the typedef left, kill it and switch the
remaining users to use the underlying struct.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Darrick J. Wong <djwong@kernel.org>
Signed-off-by: Carlos Maiolino <cem@kernel.org>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Andrey Albershteyn <aalbersh@kernel.org>
4 months agoxfs: remove the xfs_efi_log_format_64_t typedef
Christoph Hellwig [Fri, 5 Dec 2025 15:03:15 +0000 (16:03 +0100)] 
xfs: remove the xfs_efi_log_format_64_t typedef

Source kernel commit: 3fe5abc2bf4db88c7c9c99e8a1f5b3d1336d528f

There are almost no users of the typedef left, kill it and switch the
remaining users to use the underlying struct.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Darrick J. Wong <djwong@kernel.org>
Signed-off-by: Carlos Maiolino <cem@kernel.org>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Andrey Albershteyn <aalbersh@kernel.org>
4 months agoxfs: remove the xfs_efi_log_format_32_t typedef
Christoph Hellwig [Fri, 5 Dec 2025 15:03:10 +0000 (16:03 +0100)] 
xfs: remove the xfs_efi_log_format_32_t typedef

Source kernel commit: 68c9f8444ae930343a2c900cb909825bc8f7304a

There are almost no users of the typedef left, kill it and switch the
remaining users to use the underlying struct.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Darrick J. Wong <djwong@kernel.org>
Signed-off-by: Carlos Maiolino <cem@kernel.org>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Andrey Albershteyn <aalbersh@kernel.org>
4 months agoxfs: remove the xfs_efi_log_format_t typedef
Christoph Hellwig [Fri, 5 Dec 2025 15:03:06 +0000 (16:03 +0100)] 
xfs: remove the xfs_efi_log_format_t typedef

Source kernel commit: 655d9ec7bd9e38735ae36dbc635a9161a046f7b9

There are almost no users of the typedef left, kill it and switch the
remaining users to use the underlying struct.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Darrick J. Wong <djwong@kernel.org>
Signed-off-by: Carlos Maiolino <cem@kernel.org>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Andrey Albershteyn <aalbersh@kernel.org>
4 months agoxfs: remove the xfs_extent64_t typedef
Christoph Hellwig [Fri, 5 Dec 2025 15:03:01 +0000 (16:03 +0100)] 
xfs: remove the xfs_extent64_t typedef

Source kernel commit: 72628b6f459ea4fed3003db8161b52ee746442d0

There are almost no users of the typedef left, kill it and switch the
remaining users to use the underlying struct.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Darrick J. Wong <djwong@kernel.org>
Signed-off-by: Carlos Maiolino <cem@kernel.org>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Andrey Albershteyn <aalbersh@kernel.org>
4 months agoxfs: remove the xfs_extent32_t typedef
Christoph Hellwig [Fri, 5 Dec 2025 15:02:56 +0000 (16:02 +0100)] 
xfs: remove the xfs_extent32_t typedef

Source kernel commit: 7eaf684bc48923b5584fc119e8c477be2cdb3eb2

There are almost no users of the typedef left, kill it and switch the
remaining users to use the underlying struct.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Darrick J. Wong <djwong@kernel.org>
Signed-off-by: Carlos Maiolino <cem@kernel.org>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Andrey Albershteyn <aalbersh@kernel.org>
4 months agoxfs: remove the xfs_extent_t typedef
Christoph Hellwig [Fri, 5 Dec 2025 15:02:51 +0000 (16:02 +0100)] 
xfs: remove the xfs_extent_t typedef

Source kernel commit: 476688c8ac60da9bfcb3ce7f5a2d30a145ef7f76

There are almost no users of the typedef left, kill it and switch the
remaining users to use the underlying struct.

Also fix up the comment about the struct xfs_extent definition to be
correct and read more easily.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Darrick J. Wong <djwong@kernel.org>
Signed-off-by: Carlos Maiolino <cem@kernel.org>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Andrey Albershteyn <aalbersh@kernel.org>
4 months agoxfs: remove the xfs_trans_header_t typedef
Christoph Hellwig [Fri, 5 Dec 2025 15:02:46 +0000 (16:02 +0100)] 
xfs: remove the xfs_trans_header_t typedef

Source kernel commit: 05f17dcbfd5dbe309af310508d8830ac4e0c5d4c

There are almost no users of the typedef left, kill it and switch the
remaining users to use the underlying struct.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Darrick J. Wong <djwong@kernel.org>
Signed-off-by: Carlos Maiolino <cem@kernel.org>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Andrey Albershteyn <aalbersh@kernel.org>
4 months agoxfs: remove the xlog_op_header_t typedef
Christoph Hellwig [Fri, 5 Dec 2025 15:02:42 +0000 (16:02 +0100)] 
xfs: remove the xlog_op_header_t typedef

Source kernel commit: eff8668607888988cad7b31528ff08d8883c5d7e

There are almost no users of the typedef left, kill it and switch the
remaining users to use the underlying struct.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Darrick J. Wong <djwong@kernel.org>
Signed-off-by: Carlos Maiolino <cem@kernel.org>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Andrey Albershteyn <aalbersh@kernel.org>
4 months agoxfs: convert xfs_efi_log_format_64_t typedef to struct
Andrey Albershteyn [Fri, 5 Dec 2025 15:02:37 +0000 (16:02 +0100)] 
xfs: convert xfs_efi_log_format_64_t typedef to struct

Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Andrey Albershteyn <aalbersh@kernel.org>
4 months agoxfs: convert xfs_extent_t typedef to struct
Andrey Albershteyn [Fri, 5 Dec 2025 15:02:32 +0000 (16:02 +0100)] 
xfs: convert xfs_extent_t typedef to struct

Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Andrey Albershteyn <aalbersh@kernel.org>
4 months agoxfs: convert xfs_efi_log_format_32_t typedef to struct
Andrey Albershteyn [Fri, 5 Dec 2025 15:02:27 +0000 (16:02 +0100)] 
xfs: convert xfs_efi_log_format_32_t typedef to struct

Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Andrey Albershteyn <aalbersh@kernel.org>
4 months agoxfs: convert xfs_efd_log_format_t typedef to struct
Andrey Albershteyn [Fri, 5 Dec 2025 15:02:21 +0000 (16:02 +0100)] 
xfs: convert xfs_efd_log_format_t typedef to struct

Align function arguments to new longer variable type and fix comment in
xlog_print_trans_rud() with wrong xfs_efd_log_format mention.

Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Andrey Albershteyn <aalbersh@kernel.org>
4 months agoxfs: convert xfs_efi_log_format typedef to struct
Andrey Albershteyn [Fri, 5 Dec 2025 15:02:15 +0000 (16:02 +0100)] 
xfs: convert xfs_efi_log_format typedef to struct

Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Andrey Albershteyn <aalbersh@kernel.org>
4 months agoxfs: convert xfs_dq_logformat_t typedef to struct
Andrey Albershteyn [Fri, 5 Dec 2025 15:02:06 +0000 (16:02 +0100)] 
xfs: convert xfs_dq_logformat_t typedef to struct

Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Andrey Albershteyn <aalbersh@kernel.org>
4 months agoxfs: convert xfs_qoff_logformat_t typedef to struct
Andrey Albershteyn [Fri, 5 Dec 2025 15:02:01 +0000 (16:02 +0100)] 
xfs: convert xfs_qoff_logformat_t typedef to struct

Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Andrey Albershteyn <aalbersh@kernel.org>
4 months agoxfs: convert xfs_log_iovec_t typedef to struct
Andrey Albershteyn [Fri, 5 Dec 2025 15:01:55 +0000 (16:01 +0100)] 
xfs: convert xfs_log_iovec_t typedef to struct

Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Andrey Albershteyn <aalbersh@kernel.org>
4 months agoxfs: convert xfs_trans_header_t typdef to struct
Andrey Albershteyn [Fri, 5 Dec 2025 15:01:50 +0000 (16:01 +0100)] 
xfs: convert xfs_trans_header_t typdef to struct

Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Andrey Albershteyn <aalbersh@kernel.org>
4 months agoxfs: convert xlog_op_header_t typedef to struct
Andrey Albershteyn [Fri, 5 Dec 2025 15:01:45 +0000 (16:01 +0100)] 
xfs: convert xlog_op_header_t typedef to struct

Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Andrey Albershteyn <aalbersh@kernel.org>
4 months agoxfs: convert xfs_buf_log_format_t typedef to struct
Andrey Albershteyn [Fri, 5 Dec 2025 15:01:40 +0000 (16:01 +0100)] 
xfs: convert xfs_buf_log_format_t typedef to struct

Reviewed-by: Andrey Albershteyn <aalbersh@kernel.org>
Reviewed-by: Christoph Hellwig <hch@lst.de>
4 months agoxfs: remove deprecated sysctl knobs
Darrick J. Wong [Fri, 5 Dec 2025 15:01:35 +0000 (16:01 +0100)] 
xfs: remove deprecated sysctl knobs

Source kernel commit: 21d59d00221e4ecbcb597eec0021c667477d3335

These sysctl knobs were scheduled for removal in September 2025.  That
time has come, so remove them.

Signed-off-by: Darrick J. Wong <djwong@kernel.org>
Reviewed-by: Carlos Maiolino <cmaiolino@redhat.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Andrey Albershteyn <aalbersh@kernel.org>
4 months agoxfs: remove deprecated mount options
Darrick J. Wong [Fri, 5 Dec 2025 15:01:30 +0000 (16:01 +0100)] 
xfs: remove deprecated mount options

Source kernel commit: b9a176e54162f890aaf50ac8a467d725ed2f00df

These four mount options were scheduled for removal in September 2025,
so remove them now.

Cc: preichl@redhat.com
Signed-off-by: Darrick J. Wong <djwong@kernel.org>
Reviewed-by: Carlos Maiolino <cmaiolino@redhat.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Andrey Albershteyn <aalbersh@kernel.org>
4 months agoman2: fix getparents ioctl manpage
Darrick J. Wong [Tue, 2 Dec 2025 01:28:00 +0000 (17:28 -0800)] 
man2: fix getparents ioctl manpage

Fix a silly typo in the manual page for the GETPARENTS ioctl.

Cc: linux-xfs@vger.kernel.org # v6.10.0
Fixes: a24294c252d4a6 ("man: document the XFS_IOC_GETPARENTS ioctl")
Signed-off-by: Darrick J. Wong <djwong@kernel.org>
Reviewed-by: Christoph Hellwig <hch@lst.de>
4 months agoxfs_db: document the rtsb command
Darrick J. Wong [Tue, 2 Dec 2025 01:27:44 +0000 (17:27 -0800)] 
xfs_db: document the rtsb command

Document the rtsb command, which positions the debugger at the
superblock for the realtime volume, if there is one.

Found by xfs/514.

Signed-off-by: Darrick J. Wong <djwong@kernel.org>
Reviewed-by: Christoph Hellwig <hch@lst.de>
4 months agolibxfs: fix build warnings
Darrick J. Wong [Tue, 2 Dec 2025 01:27:29 +0000 (17:27 -0800)] 
libxfs: fix build warnings

gcc 14.2 with all the warnings turn on complains about missing
prototypes for these two functions:

 util.c:147:1: error: no previous prototype for 'current_fixed_time' [-Werror=missing-prototypes]
   147 | current_fixed_time(
       | ^~~~~~~~~~~~~~~~~~
 util.c:590:1: error: no previous prototype for 'get_deterministic_seed' [-Werror=missing-prototypes]
   590 | get_deterministic_seed(
       | ^~~~~~~~~~~~~~~~~~~~~~

Since they're not used outside of util.c, just make them static.

Fixes: 4a54700b4385bb ("libxfs: support reproducible filesystems using deterministic time/seed")
Signed-off-by: Darrick J. Wong <djwong@kernel.org>
Reviewed-by: Christoph Hellwig <hch@lst.de>
4 months agologprint: cleanup xfs_log_print
Christoph Hellwig [Fri, 28 Nov 2025 06:30:02 +0000 (07:30 +0100)] 
logprint: cleanup xfs_log_print

Re-indent and drop typedefs.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Andrey Albershteyn <aalbersh@kernel.org>
4 months agologprint: cleanup xlog_print_extended_headers
Christoph Hellwig [Fri, 28 Nov 2025 06:30:01 +0000 (07:30 +0100)] 
logprint: cleanup xlog_print_extended_headers

Re-indent and drop typedefs.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Andrey Albershteyn <aalbersh@kernel.org>
4 months agologprint: factor out a xlog_print_ext_header helper
Christoph Hellwig [Fri, 28 Nov 2025 06:30:00 +0000 (07:30 +0100)] 
logprint: factor out a xlog_print_ext_header helper

Split the inner extheader printing loop into a separate helper.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Andrey Albershteyn <aalbersh@kernel.org>
4 months agologprint: cleanup xlog_reallocate_xhdrs
Christoph Hellwig [Fri, 28 Nov 2025 06:29:59 +0000 (07:29 +0100)] 
logprint: cleanup xlog_reallocate_xhdrs

Re-indent and drop typedefs.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Andrey Albershteyn <aalbersh@kernel.org>
4 months agologprint: re-indent print_xlog_bad_*
Christoph Hellwig [Fri, 28 Nov 2025 06:29:58 +0000 (07:29 +0100)] 
logprint: re-indent print_xlog_bad_*

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Andrey Albershteyn <aalbersh@kernel.org>
4 months agologprint: cleanup xlog_print_rec_xhead
Christoph Hellwig [Fri, 28 Nov 2025 06:29:57 +0000 (07:29 +0100)] 
logprint: cleanup xlog_print_rec_xhead

Re-indent and drop typedefs.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Andrey Albershteyn <aalbersh@kernel.org>
4 months agologprint: cleanup xlog_print_rec_head
Christoph Hellwig [Fri, 28 Nov 2025 06:29:56 +0000 (07:29 +0100)] 
logprint: cleanup xlog_print_rec_head

Re-indent and drop typedefs.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Andrey Albershteyn <aalbersh@kernel.org>
4 months agologprint: cleanup xlog_print_record
Christoph Hellwig [Fri, 28 Nov 2025 06:29:55 +0000 (07:29 +0100)] 
logprint: cleanup xlog_print_record

Indent to the normal style, use structs instead of typedefs, and move
assignments out of conditionals.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Andrey Albershteyn <aalbersh@kernel.org>
4 months agologprint: factor out a xlog_unpack_rec_header
Christoph Hellwig [Fri, 28 Nov 2025 06:29:54 +0000 (07:29 +0100)] 
logprint: factor out a xlog_unpack_rec_header

Split the log record validation and unpacking logic into a separate
helper.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Andrey Albershteyn <aalbersh@kernel.org>
4 months agologprint: factor out a xlog_print_op helper
Christoph Hellwig [Fri, 28 Nov 2025 06:29:53 +0000 (07:29 +0100)] 
logprint: factor out a xlog_print_op helper

Split the inner printing loop from xlog_print_record into a separate
helper.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Andrey Albershteyn <aalbersh@kernel.org>
4 months agologprint: factor out a xlog_print_process_region helper
Christoph Hellwig [Fri, 28 Nov 2025 06:29:52 +0000 (07:29 +0100)] 
logprint: factor out a xlog_print_process_region helper

Start splitting up xlog_print_record by moving the switch on the item
types inside the inner loop into a self-contained helper.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Andrey Albershteyn <aalbersh@kernel.org>
4 months agologprint: re-indent print_lseek / print_lsn
Christoph Hellwig [Fri, 28 Nov 2025 06:29:51 +0000 (07:29 +0100)] 
logprint: re-indent print_lseek / print_lsn

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Andrey Albershteyn <aalbersh@kernel.org>
4 months agologprint: cleanup xlog_print_trans_dquot
Christoph Hellwig [Fri, 28 Nov 2025 06:29:50 +0000 (07:29 +0100)] 
logprint: cleanup xlog_print_trans_dquot

Re-indent, drop typedefs and invert a conditional to allow for an early
return.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Andrey Albershteyn <aalbersh@kernel.org>
4 months agologprint: cleanup xlog_print_trans_inode
Christoph Hellwig [Fri, 28 Nov 2025 06:29:49 +0000 (07:29 +0100)] 
logprint: cleanup xlog_print_trans_inode

Re-indent, drop typedefs and invert a conditional to allow for an early
return.

Signed-off-by: Christoph Hellwig <hch@lst.de>
[aalbersh: add one column of tabs to arguments and vars definitions]
Signed-off-by: Andrey Albershteyn <aalbersh@kernel.org>
Reviewed-by: Andrey Albershteyn <aalbersh@kernel.org>
4 months agologprint: move xfs_inode_item_format_convert up
Christoph Hellwig [Fri, 28 Nov 2025 06:29:48 +0000 (07:29 +0100)] 
logprint: move xfs_inode_item_format_convert up

Toward the caller.  And reindent it while we're at it.

Signed-off-by: Christoph Hellwig <hch@lst.de>
[aalbersh: add one tab column to arguments to make it align with in_f32]
Signed-off-by: Andrey Albershteyn <aalbersh@kernel.org>
Reviewed-by: Andrey Albershteyn <aalbersh@kernel.org>
4 months agologprint: cleanup xlog_print_trans_inode_core
Christoph Hellwig [Fri, 28 Nov 2025 06:29:47 +0000 (07:29 +0100)] 
logprint: cleanup xlog_print_trans_inode_core

Re-indent and drop typedefs.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Andrey Albershteyn <aalbersh@kernel.org>
4 months agologprint: cleanup xlog_print_trans_qoff
Christoph Hellwig [Fri, 28 Nov 2025 06:29:46 +0000 (07:29 +0100)] 
logprint: cleanup xlog_print_trans_qoff

Re-indent, drop typedefs and invert a conditional to allow for an early
return.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Andrey Albershteyn <aalbersh@kernel.org>
4 months agologprint: cleanup xlog_print_trans_buffer
Christoph Hellwig [Fri, 28 Nov 2025 06:29:45 +0000 (07:29 +0100)] 
logprint: cleanup xlog_print_trans_buffer

Re-indent, drop typedefs and invert a conditional to allow for an early
return.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Andrey Albershteyn <aalbersh@kernel.org>
4 months agologprint: split per-type helpers out of xlog_print_trans_buffer
Christoph Hellwig [Fri, 28 Nov 2025 06:29:44 +0000 (07:29 +0100)] 
logprint: split per-type helpers out of xlog_print_trans_buffer

Add a new helper for each special cased buffer type.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Andrey Albershteyn <aalbersh@kernel.org>
4 months agologprint: cleanup xlog_print_trans_header
Christoph Hellwig [Fri, 28 Nov 2025 06:29:43 +0000 (07:29 +0100)] 
logprint: cleanup xlog_print_trans_header

Re-indent and drop typedef use.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Andrey Albershteyn <aalbersh@kernel.org>
4 months agologprint: cleanup struct xlog_split_item handling
Christoph Hellwig [Fri, 28 Nov 2025 06:29:42 +0000 (07:29 +0100)] 
logprint: cleanup struct xlog_split_item handling

Drop the typedef and re-indent the helpers for it.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Andrey Albershteyn <aalbersh@kernel.org>
4 months agologprint: cleanup xlog_print_op_header
Christoph Hellwig [Fri, 28 Nov 2025 06:29:41 +0000 (07:29 +0100)] 
logprint: cleanup xlog_print_op_header

Re-indent and drop typedef use.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Andrey Albershteyn <aalbersh@kernel.org>