linux/fs/xfs/libxfs
Darrick J. Wong 881f78f472 xfs: remove conditional building of rt geometry validator functions
I mistakenly turned off CONFIG_XFS_RT in the Kconfig file for arm64
variant of the djwong-wtf git branch.  Unfortunately, it took me a good
hour to figure out that RT wasn't built because this is what got printed
to dmesg:

XFS (sda2): realtime geometry sanity check failed
XFS (sda2): Metadata corruption detected at xfs_sb_read_verify+0x170/0x190 [xfs], xfs_sb block 0x0

Whereas I would have expected:

XFS (sda2): Not built with CONFIG_XFS_RT
XFS (sda2): RT mount failed

The root cause of these problems is the conditional compilation of the
new functions xfs_validate_rtextents and xfs_compute_rextslog that I
introduced in the two commits listed below.  The !RT versions of these
functions return false and 0, respectively, which causes primary
superblock validation to fail, which explains the first message.

Move the two functions to other parts of libxfs that are not
conditionally defined by CONFIG_XFS_RT and remove the broken stubs so
that validation works again.

Fixes: e14293803f ("xfs: don't allow overly small or large realtime volumes")
Fixes: a6a38f309a ("xfs: make rextslog computation consistent with mkfs")
Signed-off-by: "Darrick J. Wong" <djwong@kernel.org>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Chandan Babu R <chandanbabu@kernel.org>
2024-01-30 14:04:43 +05:30
..
xfs_ag_resv.c xfs: repair free space btrees 2023-12-15 10:03:32 -08:00
xfs_ag_resv.h xfs: move perag structure and setup to libxfs/xfs_ag.[ch] 2021-06-02 10:48:24 +10:00
xfs_ag.c xfs: fix perag leak when growfs fails 2023-12-22 10:52:42 +05:30
xfs_ag.h xfs: fix perag leak when growfs fails 2023-12-22 10:52:42 +05:30
xfs_alloc_btree.c xfs: repair free space btrees 2023-12-15 10:03:32 -08:00
xfs_alloc_btree.h xfs: use separate btree cursor cache for each btree type 2021-10-19 11:45:16 -07:00
xfs_alloc.c xfs: repair free space btrees 2023-12-15 10:03:32 -08:00
xfs_alloc.h xfs: repair free space btrees 2023-12-15 10:03:32 -08:00
xfs_attr_leaf.c xfs: remove xfs_attr_sf_hdr_t 2023-12-29 13:37:05 +05:30
xfs_attr_leaf.h xfs: remove struct xfs_attr_shortform 2023-12-29 13:37:05 +05:30
xfs_attr_remote.c xfs: rework xfs_buf_incore() API 2022-07-07 22:05:18 +10:00
xfs_attr_remote.h xfs: rename struct xfs_attr_item to xfs_attr_intent 2022-05-22 16:00:26 +10:00
xfs_attr_sf.h xfs: remove xfs_attr_sf_hdr_t 2023-12-29 13:37:05 +05:30
xfs_attr.c xfs: reset XFS_ATTR_INCOMPLETE filter on node removal 2024-01-29 13:48:10 +05:30
xfs_attr.h xfs: replace XFS_IFORK_Q with a proper predicate function 2022-07-12 11:17:27 -07:00
xfs_bit.c
xfs_bit.h
xfs_bmap_btree.c xfs: repair inode fork block mapping data structures 2023-12-15 10:03:39 -08:00
xfs_bmap_btree.h xfs: repair inode fork block mapping data structures 2023-12-15 10:03:39 -08:00
xfs_bmap.c xfs: fix backwards logic in xfs_bmap_alloc_account 2024-01-11 10:34:01 +05:30
xfs_bmap.h xfs: also use xfs_bmap_btalloc_accounting for RT allocations 2023-12-22 11:18:11 +05:30
xfs_btree_staging.c xfs: repair inode fork block mapping data structures 2023-12-15 10:03:39 -08:00
xfs_btree_staging.h xfs: repair inode fork block mapping data structures 2023-12-15 10:03:39 -08:00
xfs_btree.c xfs: repair refcount btrees 2023-12-15 10:03:33 -08:00
xfs_btree.h xfs: repair refcount btrees 2023-12-15 10:03:33 -08:00
xfs_cksum.h
xfs_da_btree.c xfs: extract xfs_da_buf_copy() helper function 2023-12-07 14:57:14 +05:30
xfs_da_btree.h xfs: extract xfs_da_buf_copy() helper function 2023-12-07 14:57:14 +05:30
xfs_da_format.h xfs: remove struct xfs_attr_shortform 2023-12-29 13:37:05 +05:30
xfs_defer.c xfs: use the op name in trace_xlog_intent_recovery_failed 2023-12-29 13:37:05 +05:30
xfs_defer.h xfs: pass the defer ops directly to xfs_defer_add 2023-12-14 11:13:52 +05:30
xfs_dir2_block.c xfs: make if_data a void pointer 2023-12-29 13:37:03 +05:30
xfs_dir2_data.c xfs: convert bp->b_bn references to xfs_buf_daddr() 2021-08-19 10:07:15 -07:00
xfs_dir2_leaf.c xfs: fix exception caused by unexpected illegal bestcount in leaf dir 2022-10-20 09:42:56 -07:00
xfs_dir2_node.c xfs: convert bp->b_bn references to xfs_buf_daddr() 2021-08-19 10:07:15 -07:00
xfs_dir2_priv.h xfs: zap broken inode forks 2023-12-15 10:03:37 -08:00
xfs_dir2_sf.c xfs: return if_data from xfs_idata_realloc 2023-12-29 13:37:04 +05:30
xfs_dir2.c xfs: make if_data a void pointer 2023-12-29 13:37:03 +05:30
xfs_dir2.h xfs: stabilize the dirent name transformation function used for ascii-ci dir hash computation 2023-04-11 19:05:04 -07:00
xfs_dquot_buf.c xfs: remove the xfs_dqblk_t typedef 2021-10-14 09:19:33 -07:00
xfs_errortag.h xfs: add debug knob to slow down write for fun 2022-11-28 17:54:49 -08:00
xfs_format.h xfs: remove XFS_RTMIN/XFS_RTMAX 2023-12-22 11:18:14 +05:30
xfs_fs.h xfs: allow userspace to rebuild metadata structures 2023-08-10 07:48:11 -07:00
xfs_health.h xfs: set inode sick state flags when we zap either ondisk fork 2023-12-15 10:03:35 -08:00
xfs_ialloc_btree.c xfs: remove __xfs_free_extent_later 2023-12-06 18:45:18 -08:00
xfs_ialloc_btree.h xfs: standardize ondisk to incore conversion for inode btrees 2023-04-11 19:00:01 -07:00
xfs_ialloc.c xfs: repair inode btrees 2023-12-15 10:03:32 -08:00
xfs_ialloc.h xfs: repair inode btrees 2023-12-15 10:03:32 -08:00
xfs_iext_tree.c xfs: make if_data a void pointer 2023-12-29 13:37:03 +05:30
xfs_inode_buf.c xfs: inode recovery does not validate the recovered inode 2023-11-13 09:11:41 +05:30
xfs_inode_buf.h xfs: kill xfs_sb_version_has_v3inode() 2021-08-19 10:07:14 -07:00
xfs_inode_fork.c xfs: remove struct xfs_attr_shortform 2023-12-29 13:37:05 +05:30
xfs_inode_fork.h xfs: return if_data from xfs_idata_realloc 2023-12-29 13:37:04 +05:30
xfs_log_format.h xfs: fix AGF vs inode cluster buffer deadlock 2023-06-05 04:08:27 +10:00
xfs_log_recover.h xfs: pass the defer ops instead of type to xfs_defer_start_recovery 2023-12-14 11:13:38 +05:30
xfs_log_rlimit.c xfs: reduce transaction reservations with reflink 2022-04-28 10:25:42 -07:00
xfs_ondisk.h xfs: remove struct xfs_attr_shortform 2023-12-29 13:37:05 +05:30
xfs_quota_defs.h xfs: remove warning counters from struct xfs_dquot_res 2022-05-11 17:12:09 +10:00
xfs_refcount_btree.c xfs: repair refcount btrees 2023-12-15 10:03:33 -08:00
xfs_refcount_btree.h xfs: use separate btree cursor cache for each btree type 2021-10-19 11:45:16 -07:00
xfs_refcount.c xfs: create a ranged query function for refcount btrees 2023-12-15 10:03:40 -08:00
xfs_refcount.h xfs: create a ranged query function for refcount btrees 2023-12-15 10:03:40 -08:00
xfs_rmap_btree.c xfs: implement masked btree key comparisons for _has_records scans 2023-04-11 19:00:11 -07:00
xfs_rmap_btree.h xfs: use separate btree cursor cache for each btree type 2021-10-19 11:45:16 -07:00
xfs_rmap.c xfs: pass the defer ops directly to xfs_defer_add 2023-12-14 11:13:52 +05:30
xfs_rmap.h xfs: teach scrub to check for sole ownership of metadata objects 2023-04-11 19:00:15 -07:00
xfs_rtbitmap.c xfs: remove conditional building of rt geometry validator functions 2024-01-30 14:04:43 +05:30
xfs_rtbitmap.h xfs: remove conditional building of rt geometry validator functions 2024-01-30 14:04:43 +05:30
xfs_sb.c xfs: remove conditional building of rt geometry validator functions 2024-01-30 14:04:43 +05:30
xfs_sb.h xfs: remove conditional building of rt geometry validator functions 2024-01-30 14:04:43 +05:30
xfs_shared.h xfs: zap broken inode forks 2023-12-15 10:03:37 -08:00
xfs_symlink_remote.c xfs: make if_data a void pointer 2023-12-29 13:37:03 +05:30
xfs_trans_inode.c xfs: convert to new timestamp accessors 2023-10-18 14:08:29 +02:00
xfs_trans_resv.c xfs: create helpers for rtbitmap block/wordcount computations 2023-10-18 10:58:58 -07:00
xfs_trans_resv.h xfs: rename xfs_*alloc*_log_count to _block_count 2022-04-28 10:25:59 -07:00
xfs_trans_space.h xfs: compute the maximum height of the rmap btree when reflink enabled 2021-10-19 11:45:16 -07:00
xfs_types.c xfs: rename xfs_verify_rtext to xfs_verify_rtbext 2023-10-17 16:24:22 -07:00
xfs_types.h xfs: remove conditional building of rt geometry validator functions 2024-01-30 14:04:43 +05:30