linux/fs/xfs/scrub
Darrick J. Wong 59c462b0f5 xfs: don't zap bmbt forks if they are MAXLEVELS tall
LOLLM noticed a discrepancy between the bmbt level checks in the libxfs
bmbt code vs. the inode repair code.  We do actually allow a bmbt root
that proclaims to have a height of XFS_BM_MAXLEVELS.

Cc: stable@vger.kernel.org # v6.8
Fixes: e744cef206 ("xfs: zap broken inode forks")
Signed-off-by: "Darrick J. Wong" <djwong@kernel.org>
Assisted-by: LOLLM # finding obvious bugs
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Carlos Maiolino <cem@kernel.org>
2026-07-14 11:01:47 +02:00
..
agb_bitmap.c xfs: directly include xfs_platform.h 2026-01-21 12:57:16 +01:00
agb_bitmap.h
agheader_repair.c xfs: fix AGFL extent count calculation in xrep_agfl_fill 2026-06-29 09:54:22 +02:00
agheader.c treewide: Replace kmalloc with kmalloc_obj for non-scalar types 2026-02-21 01:02:28 -08:00
agino_bitmap.h
alloc_repair.c treewide: Replace kmalloc with kmalloc_obj for non-scalar types 2026-02-21 01:02:28 -08:00
alloc.c xfs: directly include xfs_platform.h 2026-01-21 12:57:16 +01:00
attr_repair.c xfs: remove the i_ino field in struct xfs_inode 2026-06-09 09:14:41 +02:00
attr_repair.h
attr.c xfs: remove the i_ino field in struct xfs_inode 2026-06-09 09:14:41 +02:00
attr.h
bitmap.c treewide: Replace kmalloc with kmalloc_obj for non-scalar types 2026-02-21 01:02:28 -08:00
bitmap.h
bmap_repair.c xfs: remove the i_ino field in struct xfs_inode 2026-06-09 09:14:41 +02:00
bmap.c xfs: remove the i_ino field in struct xfs_inode 2026-06-09 09:14:41 +02:00
btree.c treewide: Replace kmalloc with kmalloc_obj for non-scalar types 2026-02-21 01:02:28 -08:00
btree.h
common.c xfs: remove the i_ino field in struct xfs_inode 2026-06-09 09:14:41 +02:00
common.h xfs: remove the i_ino field in struct xfs_inode 2026-06-09 09:14:41 +02:00
cow_repair.c xfs: move cow_replace_mapping to xfs_bmap_util.c 2026-07-14 11:01:47 +02:00
dab_bitmap.h
dabtree.c xfs: remove the i_ino field in struct xfs_inode 2026-06-09 09:14:41 +02:00
dabtree.h
dir_repair.c xfs: remove the i_ino field in struct xfs_inode 2026-06-09 09:14:41 +02:00
dir.c xfs: remove the i_ino field in struct xfs_inode 2026-06-09 09:14:41 +02:00
dirtree_repair.c xfs: remove the i_ino field in struct xfs_inode 2026-06-09 09:14:41 +02:00
dirtree.c xfs: fully check the parent handle when it points to the rootdir 2026-07-14 11:01:47 +02:00
dirtree.h
dqiterate.c xfs: don't wrap around quota ids in dqiterate 2026-07-14 11:01:47 +02:00
findparent.c xfs: remove the i_ino field in struct xfs_inode 2026-06-09 09:14:41 +02:00
findparent.h
fsb_bitmap.h
fscounters_repair.c xfs: directly include xfs_platform.h 2026-01-21 12:57:16 +01:00
fscounters.c treewide: Replace kmalloc with kmalloc_obj for non-scalar types 2026-02-21 01:02:28 -08:00
fscounters.h
health.c xfs: directly include xfs_platform.h 2026-01-21 12:57:16 +01:00
health.h
ialloc_repair.c xfs: store an agbno in struct xfs_imap 2026-06-09 09:14:42 +02:00
ialloc.c xfs: store an agbno in struct xfs_imap 2026-06-09 09:14:42 +02:00
ino_bitmap.h
inode_repair.c xfs: don't zap bmbt forks if they are MAXLEVELS tall 2026-07-14 11:01:47 +02:00
inode.c xfs: remove the i_ino field in struct xfs_inode 2026-06-09 09:14:41 +02:00
iscan.c xfs: remove the i_ino field in struct xfs_inode 2026-06-09 09:14:41 +02:00
iscan.h
listxattr.c xfs: remove the i_ino field in struct xfs_inode 2026-06-09 09:14:41 +02:00
listxattr.h
metapath.c xfs: remove the i_ino field in struct xfs_inode 2026-06-09 09:14:41 +02:00
newbt.c xfs: add a xfs_rmap_inode_bmbt_owner 2026-06-09 09:14:41 +02:00
newbt.h xfs: support repairing metadata btrees rooted in metadir inodes 2024-12-23 13:06:08 -08:00
nlinks_repair.c xfs: remove the i_ino field in struct xfs_inode 2026-06-09 09:14:41 +02:00
nlinks.c xfs: remove the i_ino field in struct xfs_inode 2026-06-09 09:14:41 +02:00
nlinks.h
off_bitmap.h
orphanage.c xfs: remove the i_ino field in struct xfs_inode 2026-06-09 09:14:41 +02:00
orphanage.h
parent_repair.c xfs: remove the i_ino field in struct xfs_inode 2026-06-09 09:14:41 +02:00
parent.c xfs: remove the i_ino field in struct xfs_inode 2026-06-09 09:14:41 +02:00
quota_repair.c xfs: directly include xfs_platform.h 2026-01-21 12:57:16 +01:00
quota.c xfs: scrub: unlock dquot before early return in quota scrub 2026-03-18 09:44:46 +01:00
quota.h
quotacheck_repair.c xfs: directly include xfs_platform.h 2026-01-21 12:57:16 +01:00
quotacheck.c xfs: remove the i_ino field in struct xfs_inode 2026-06-09 09:14:41 +02:00
quotacheck.h
rcbag_btree.c xfs: directly include xfs_platform.h 2026-01-21 12:57:16 +01:00
rcbag_btree.h
rcbag.c treewide: Replace kmalloc with kmalloc_obj for non-scalar types 2026-02-21 01:02:28 -08:00
rcbag.h
readdir.c xfs: remove the i_ino field in struct xfs_inode 2026-06-09 09:14:41 +02:00
readdir.h
reap.c xfs: add a xfs_rmap_inode_owner helper 2026-06-09 09:14:41 +02:00
reap.h xfs: fix CoW forks for realtime files 2024-12-23 13:06:17 -08:00
refcount_repair.c treewide: Replace kmalloc with kmalloc_obj for non-scalar types 2026-02-21 01:02:28 -08:00
refcount.c treewide: Replace kmalloc with kmalloc_obj for non-scalar types 2026-02-21 01:02:28 -08:00
repair.c xfs: remove the i_ino field in struct xfs_inode 2026-06-09 09:14:41 +02:00
repair.h xfs: remove static reap limits from repair.h 2025-09-05 08:48:23 -07:00
rgb_bitmap.h xfs: capture realtime CoW staging extents when rebuilding rt rmapbt 2024-12-23 13:06:16 -08:00
rgsuper.c xfs: grab rtrmap btree when checking rgsuper 2026-07-14 11:01:47 +02:00
rmap_repair.c xfs: remove the i_ino field in struct xfs_inode 2026-06-09 09:14:41 +02:00
rmap.c treewide: Replace kmalloc with kmalloc_obj for non-scalar types 2026-02-21 01:02:28 -08:00
rtb_bitmap.h xfs: fix CoW forks for realtime files 2024-12-23 13:06:17 -08:00
rtbitmap_repair.c xfs: remove the i_ino field in struct xfs_inode 2026-06-09 09:14:41 +02:00
rtbitmap.c xfs: fix off-by-one error when calling xchk_xref_has_rt_owner 2026-07-14 11:01:47 +02:00
rtbitmap.h xfs: online repair of realtime bitmaps for a realtime group 2024-12-23 13:06:08 -08:00
rtrefcount_repair.c xfs: remove the i_ino field in struct xfs_inode 2026-06-09 09:14:41 +02:00
rtrefcount.c xfs: use rtrefcount btree cursor in xchk_xref_is_rt_cow_staging 2026-07-14 11:01:47 +02:00
rtrmap_repair.c xfs: remove the i_ino field in struct xfs_inode 2026-06-09 09:14:41 +02:00
rtrmap.c xfs: handle non-inode owners for rtrmap record checking 2026-07-14 11:01:47 +02:00
rtsummary_repair.c xfs: remove the i_ino field in struct xfs_inode 2026-06-09 09:14:41 +02:00
rtsummary.c xfs: convert xchk_inode_xref_set_corrupt to xchk_ip_xref_set_corrupt 2026-06-09 09:14:41 +02:00
rtsummary.h
scrub.c xfs: remove the i_ino field in struct xfs_inode 2026-06-09 09:14:41 +02:00
scrub.h xfs: set xfarray killable sort correctly 2026-07-14 11:01:47 +02:00
stats.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
stats.h
symlink_repair.c xfs: remove the i_ino field in struct xfs_inode 2026-06-09 09:14:41 +02:00
symlink.c xfs: directly include xfs_platform.h 2026-01-21 12:57:16 +01:00
tempexch.h xfs: online repair of realtime bitmaps for a realtime group 2024-12-23 13:06:08 -08:00
tempfile.c xfs: remove the i_ino field in struct xfs_inode 2026-06-09 09:14:41 +02:00
tempfile.h
trace.c xfs: add a XFS_INO_TO_FSB helper 2026-06-09 09:14:41 +02:00
trace.h xfs: move cow_replace_mapping to xfs_bmap_util.c 2026-07-14 11:01:47 +02:00
xfarray.c xfs: set xfarray killable sort correctly 2026-07-14 11:01:47 +02:00
xfarray.h
xfblob.c treewide: Replace kmalloc with kmalloc_obj for non-scalar types 2026-02-21 01:02:28 -08:00
xfblob.h
xfile.c treewide: Replace kmalloc with kmalloc_obj for non-scalar types 2026-02-21 01:02:28 -08:00
xfile.h
xfs_scrub.h