linux/fs/xfs
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
..
libxfs xfs: remove conditional building of rt geometry validator functions 2024-01-30 14:04:43 +05:30
scrub xfs: remove conditional building of rt geometry validator functions 2024-01-30 14:04:43 +05:30
Kconfig xfs: fix again select in kconfig XFS_ONLINE_SCRUB_STATS 2023-11-13 09:11:41 +05:30
kmem.c
kmem.h
Makefile xfs: repair quotas 2023-12-15 10:03:45 -08:00
mrlock.h
xfs_acl.c xfs: convert to ctime accessor functions 2023-07-24 10:30:06 +02:00
xfs_acl.h
xfs_aops.c fs: convert error_remove_page to error_remove_folio 2023-12-10 16:51:42 -08:00
xfs_aops.h
xfs_attr_inactive.c xfs: make inode unlinked bucket recovery work with quotacheck 2023-09-12 10:31:07 -07:00
xfs_attr_item.c xfs: pass the defer ops instead of type to xfs_defer_start_recovery 2023-12-14 11:13:38 +05:30
xfs_attr_item.h
xfs_attr_list.c xfs: remove struct xfs_attr_shortform 2023-12-29 13:37:05 +05:30
xfs_bio_io.c
xfs_bmap_item.c xfs: pass the defer ops instead of type to xfs_defer_start_recovery 2023-12-14 11:13:38 +05:30
xfs_bmap_item.h
xfs_bmap_util.c xfs: move xfs_bmap_rtalloc to xfs_rtalloc.c 2023-12-22 11:18:11 +05:30
xfs_bmap_util.h xfs: indicate if xfs_bmap_adjacent changed ap->blkno 2023-12-22 11:18:11 +05:30
xfs_buf_item_recover.c xfs: verify buffer contents when we skip log replay 2023-04-12 15:49:23 +10:00
xfs_buf_item.c xfs: buffer pins need to hold a buffer reference 2023-06-05 04:05:27 +10:00
xfs_buf_item.h
xfs_buf.c New code for 6.8: 2024-01-10 08:45:22 -08:00
xfs_buf.h xfs: force all buffers to be written during btree bulk load 2023-12-15 10:03:27 -08:00
xfs_dahash_test.c xfs: test the ascii case-insensitive hash 2023-04-11 19:05:05 -07:00
xfs_dahash_test.h xfs: test dir/attr hash when loading module 2023-03-19 09:55:49 -07:00
xfs_dir2_readdir.c xfs: make if_data a void pointer 2023-12-29 13:37:03 +05:30
xfs_discard.c xfs: abort fstrim if kernel is suspending 2023-10-04 09:25:04 +11:00
xfs_discard.h xfs: move log discard work to xfs_discard.c 2023-10-04 09:24:02 +11:00
xfs_dquot_item_recover.c xfs: dquot recovery does not validate the recovered dquot 2023-11-22 23:39:36 +05:30
xfs_dquot_item.c
xfs_dquot_item.h
xfs_dquot.c New code for 6.8: 2024-01-10 08:45:22 -08:00
xfs_dquot.h xfs: repair quotas 2023-12-15 10:03:45 -08:00
xfs_drain.c xfs: minimize overhead of drain wakeups by using jump labels 2023-04-11 18:59:59 -07:00
xfs_drain.h xfs: minimize overhead of drain wakeups by using jump labels 2023-04-11 18:59:59 -07:00
xfs_error.c xfs: make kobj_type structures constant 2023-02-10 08:59:48 -08:00
xfs_error.h xfs: allow setting full range of panic tags 2023-02-09 18:36:17 -08:00
xfs_export.c xfs: fix reloading entire unlinked bucket lists 2023-09-24 18:12:13 -07:00
xfs_export.h
xfs_extent_busy.c xfs: repair free space btrees 2023-12-15 10:03:32 -08:00
xfs_extent_busy.h xfs: repair free space btrees 2023-12-15 10:03:32 -08:00
xfs_extfree_item.c xfs: pass the defer ops instead of type to xfs_defer_start_recovery 2023-12-14 11:13:38 +05:30
xfs_extfree_item.h
xfs_file.c xfs: allow read IO and FICLONE to run concurrently 2023-10-23 12:02:26 +05:30
xfs_filestream.c xfs: fix double xfs_perag_rele() in xfs_filestream_pick_ag() 2023-06-05 14:48:15 +10:00
xfs_filestream.h xfs: pass perag to filestreams tracing 2023-02-13 09:14:56 +11:00
xfs_fsmap.c xfs: convert do_div calls to xfs_rtb_to_rtx helper calls 2023-10-17 16:25:55 -07:00
xfs_fsmap.h
xfs_fsops.c New code for 6.8: 2024-01-10 08:45:22 -08:00
xfs_fsops.h xfs: clean up xfs_fsops.h 2023-12-07 14:51:07 +05:30
xfs_globals.c xfs: add debug knobs to control btree bulk load slack factors 2023-12-15 10:03:28 -08:00
xfs_health.c xfs: set inode sick state flags when we zap either ondisk fork 2023-12-15 10:03:35 -08:00
xfs_icache.c xfs: dynamically allocate the xfs-inodegc shrinker 2023-10-04 10:32:26 -07:00
xfs_icache.h xfs: use per-mount cpumask to track nonempty percpu inodegc lists 2023-09-11 08:39:03 -07:00
xfs_icreate_item.c
xfs_icreate_item.h
xfs_inode_item_recover.c xfs: recovery should not clear di_flushiter unconditionally 2023-11-13 09:11:41 +05:30
xfs_inode_item.c xfs: make if_data a void pointer 2023-12-29 13:37:03 +05:30
xfs_inode_item.h xfs: fix AGF vs inode cluster buffer deadlock 2023-06-05 04:08:27 +10:00
xfs_inode.c xfs: make if_data a void pointer 2023-12-29 13:37:03 +05:30
xfs_inode.h xfs: set inode sick state flags when we zap either ondisk fork 2023-12-15 10:03:35 -08:00
xfs_ioctl32.c fs: port i_{g,u}id_into_vfs{g,u}id() to mnt_idmap 2023-01-19 09:24:29 +01:00
xfs_ioctl32.h arch: Remove Itanium (IA-64) architecture 2023-09-11 08:13:17 +00:00
xfs_ioctl.c xfs: clean up the xfs_reserve_blocks interface 2023-12-07 14:51:07 +05:30
xfs_ioctl.h
xfs_iomap.c xfs: don't allocate into the data fork for an unshare request 2023-05-02 09:14:51 +10:00
xfs_iomap.h
xfs_iops.c xfs: respect the stable writes flag on the RT device 2023-11-20 15:05:19 +01:00
xfs_iops.h
xfs_itable.c xfs: convert to new timestamp accessors 2023-10-18 14:08:29 +02:00
xfs_itable.h fs: port i_{g,u}id_into_vfs{g,u}id() to mnt_idmap 2023-01-19 09:24:29 +01:00
xfs_iunlink_item.c xfs: create traced helper to get extra perag references 2023-04-11 18:59:55 -07:00
xfs_iunlink_item.h
xfs_iwalk.c xfs: create traced helper to get extra perag references 2023-04-11 18:59:55 -07:00
xfs_iwalk.h
xfs_linux.h xfs: use shifting and masking when converting rt extents, if possible 2023-10-17 16:26:25 -07:00
xfs_log_cil.c xfs: move log discard work to xfs_discard.c 2023-10-04 09:24:02 +11:00
xfs_log_priv.h xfs: use xfs_defer_pending objects to recover intent items 2023-12-06 18:45:14 -08:00
xfs_log_recover.c xfs: pass the defer ops instead of type to xfs_defer_start_recovery 2023-12-14 11:13:38 +05:30
xfs_log.c xfs: use xfs_defer_pending objects to recover intent items 2023-12-06 18:45:14 -08:00
xfs_log.h
xfs_message.c
xfs_message.h
xfs_mount.c xfs: clean up the xfs_reserve_blocks interface 2023-12-07 14:51:07 +05:30
xfs_mount.h New code for 6.7: 2023-11-08 13:22:16 -08:00
xfs_mru_cache.c
xfs_mru_cache.h
xfs_notify_failure.c mm, pmem, xfs: Introduce MF_MEM_PRE_REMOVE for unbind 2023-12-07 14:34:26 +05:30
xfs_pnfs.c
xfs_pnfs.h
xfs_pwork.c
xfs_pwork.h
xfs_qm_bhv.c
xfs_qm_syscalls.c
xfs_qm.c list_lru: allow explicit memcg and NUMA node selection 2023-12-12 10:57:01 -08:00
xfs_qm.h xfs: dynamically allocate the xfs-qm shrinker 2023-10-04 10:32:26 -07:00
xfs_quota.h xfs: turn the xfs_trans_mod_dquot_byino stub into an inline function 2023-12-22 11:18:10 +05:30
xfs_quotaops.c
xfs_refcount_item.c xfs: pass the defer ops instead of type to xfs_defer_start_recovery 2023-12-14 11:13:38 +05:30
xfs_refcount_item.h
xfs_reflink.c xfs: remove __xfs_free_extent_later 2023-12-06 18:45:18 -08:00
xfs_reflink.h
xfs_rmap_item.c xfs: pass the defer ops instead of type to xfs_defer_start_recovery 2023-12-14 11:13:38 +05:30
xfs_rmap_item.h
xfs_rtalloc.c xfs: fold xfs_rtallocate_extent into xfs_bmap_rtalloc 2023-12-22 11:18:16 +05:30
xfs_rtalloc.h xfs: move xfs_bmap_rtalloc to xfs_rtalloc.c 2023-12-22 11:18:11 +05:30
xfs_stats.c
xfs_stats.h
xfs_super.c xfs: read only mounts with fsopen mount API are busted 2024-01-22 11:33:57 +05:30
xfs_super.h xfs: create scaffolding for creating debugfs entries 2023-08-10 07:48:07 -07:00
xfs_symlink.c xfs: make if_data a void pointer 2023-12-29 13:37:03 +05:30
xfs_symlink.h fs: port inode_init_owner() to mnt_idmap 2023-01-19 09:24:28 +01:00
xfs_sysctl.c fs: Remove the now superfluous sentinel elements from ctl_table array 2023-12-28 04:57:57 -08:00
xfs_sysctl.h xfs: add debug knobs to control btree bulk load slack factors 2023-12-15 10:03:28 -08:00
xfs_sysfs.c xfs: add debug knobs to control btree bulk load slack factors 2023-12-15 10:03:28 -08:00
xfs_sysfs.h xfs: make kobj_type structures constant 2023-02-10 08:59:48 -08:00
xfs_trace.c
xfs_trace.h xfs: use the op name in trace_xlog_intent_recovery_failed 2023-12-29 13:37:05 +05:30
xfs_trans_ail.c xfs: don't reverse order of items in bulk AIL insertion 2023-06-29 09:28:23 -07:00
xfs_trans_buf.c
xfs_trans_dquot.c
xfs_trans_priv.h
xfs_trans.c xfs: repair inode fork block mapping data structures 2023-12-15 10:03:39 -08:00
xfs_trans.h xfs: repair inode fork block mapping data structures 2023-12-15 10:03:39 -08:00
xfs_xattr.c xfs: set inode sick state flags when we zap either ondisk fork 2023-12-15 10:03:35 -08:00
xfs_xattr.h xfs: move xfs_xattr_handlers to .rodata 2023-10-10 13:49:20 +02:00
xfs.h