[PATCHSET] xfs: random fixes for 6.10

Darrick J. Wong
2024-06-12T17:46:43Z

Hi all,

Here are some bugfixes for 6.10. The first two patches are from hch,
and fix some longstanding delalloc leaks that only came to light now
that we've enabled it for realtime.

The second two fixes are from me -- one fixes a bug when we run out
of space for cow preallocations when alwayscow is turned on (xfs/205),
and the other corrects overzealous inode validation that causes log
recovery failure with generic/388.

The last patch is a debugging patch to ensure that transactions never
commit corrupt inodes, buffers, or dquots.

If you're going to start using this code, I strongly recommend pulling
from my git trees, which are linked below.

This has been lightly tested with fstests. Enjoy!
Comments and questions are, as always, welcome.

--D

kernel git tree:
https://git.kernel.org/cgit/linux/kernel/git/djwong/xfs-linux.git/log/?h=random-fixes-6.10
---
Commits in this patchset:
* xfs: don't treat append-only files as having preallocations
* xfs: fix freeing speculative preallocations for preallocated files
* xfs: restrict when we try to align cow fork delalloc to cowextsz hints
* xfs: allow unlinked symlinks and dirs with zero size
* xfs: verify buffer, inode, and dquot items every tx commit
---
fs/xfs/libxfs/xfs_bmap.c | 14 +++++++++++---
fs/xfs/libxfs/xfs_bmap.h | 2 +-
fs/xfs/libxfs/xfs_inode_buf.c | 23 ++++++++++++++++++-----
fs/xfs/xfs_bmap_util.c | 37 +++++++++++++++++++++++--------------
fs/xfs/xfs_bmap_util.h | 2 +-
fs/xfs/xfs_buf_item.c | 32 ++++++++++++++++++++++++++++++++
fs/xfs/xfs_dquot_item.c | 31 +++++++++++++++++++++++++++++++
fs/xfs/xfs_icache.c | 4 ++--
fs/xfs/xfs_inode.c | 14 ++++----------
fs/xfs/xfs_inode_item.c | 32 ++++++++++++++++++++++++++++++++
fs/xfs/xfs_iomap.c | 14 ++++++++++++--
11 files changed, 167 insertions(+), 38 deletions(-)