linux/fs/xfs/libxfs
Darrick J. Wong e4f45eff86 xfs: check directory bestfree information in the verifier
Create a variant of xfs_dir2_data_freefind that is suitable for use in a
verifier.  Because _freefind is called by the verifier, we simply
duplicate the _freefind function, convert the ASSERTs to return
__this_address, and modify the verifier to call our new function.  Once
we've made it impossible for directory blocks with bad bestfree data to
make it into the filesystem we can remove the DEBUG code from the
regular _freefind function.

Underlying argument: corruption of on-disk metadata should return
-EFSCORRUPTED instead of blowing ASSERTs.

Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
Reviewed-by: Dave Chinner <dchinner@redhat.com>
2018-06-04 18:25:04 -07:00
..
xfs_ag_resv.c xfs: account only rmapbt-used blocks against rmapbt perag res 2018-03-11 20:27:57 -07:00
xfs_ag_resv.h xfs: account only rmapbt-used blocks against rmapbt perag res 2018-03-11 20:27:57 -07:00
xfs_ag.c xfs: factor the ag length extension code into libxfs 2018-05-15 18:12:51 -07:00
xfs_ag.h xfs: factor the ag length extension code into libxfs 2018-05-15 18:12:51 -07:00
xfs_alloc_btree.c xfs: don't ASSERT on short form btree root pointer of zero 2018-06-04 14:45:30 -07:00
xfs_alloc_btree.h xfs: add helpers to calculate btree size 2018-05-15 17:57:05 -07:00
xfs_alloc.c xfs: xfs_alloc_get_rec should return EFSCORRUPTED for obvious bnobt corruption 2018-06-04 14:45:30 -07:00
xfs_alloc.h xfs: hoist xfs_scrub_agfl_walk to libxfs as xfs_agfl_walk 2018-05-15 18:12:50 -07:00
xfs_attr_leaf.c Split buffer's b_fspriv field 2018-01-29 07:27:22 -08:00
xfs_attr_leaf.h xfs: create structure verifier function for shortform xattrs 2018-01-08 10:54:46 -08:00
xfs_attr_remote.c xfs: make xfs_buf_incore out of line 2018-05-09 10:04:00 -07:00
xfs_attr_remote.h
xfs_attr_sf.h xfs: remove double-underscore integer types 2017-06-19 14:11:33 -07:00
xfs_attr.c xfs: remove unnecessary xfs_qm_dqattach parameter 2018-05-10 08:56:47 -07:00
xfs_bit.c libxfs: Optimize the loop for xfs_bitmap_empty 2016-01-04 16:10:19 +11:00
xfs_bit.h xfs: remove double-underscore integer types 2017-06-19 14:11:33 -07:00
xfs_bmap_btree.c xfs: add helpers to calculate btree size 2018-05-15 17:57:05 -07:00
xfs_bmap_btree.h xfs: add helpers to calculate btree size 2018-05-15 17:57:05 -07:00
xfs_bmap.c xfs: don't assert when reporting on-disk corruption while loading btree 2018-06-04 14:45:29 -07:00
xfs_bmap.h xfs: make xfs_bmapi_remapi work with attribute forks 2018-05-15 18:12:50 -07:00
xfs_btree.c xfs: btree lookup shouldn't ASSERT on empty btree nodes 2018-06-04 14:45:30 -07:00
xfs_btree.h xfs: add repair helpers for the reference count btree 2018-05-15 17:57:05 -07:00
xfs_cksum.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
xfs_da_btree.c xfs: don't return garbage buffers in xfs_da3_node_read 2018-06-04 14:45:30 -07:00
xfs_da_btree.h xfs: remove double-underscore integer types 2017-06-19 14:11:33 -07:00
xfs_da_format.c xfs: remove double-underscore integer types 2017-06-19 14:11:33 -07:00
xfs_da_format.h xfs: refactor the geometry structure filling function 2018-01-08 10:54:48 -08:00
xfs_defer.c xfs: adder caller IP to xfs_defer* tracepoints 2018-05-10 08:56:46 -07:00
xfs_defer.h xfs: defer agfl block frees when dfops is available 2018-05-09 10:04:02 -07:00
xfs_dir2_block.c xfs: sanity-check the unused space before trying to use it 2018-03-23 18:05:07 -07:00
xfs_dir2_data.c xfs: check directory bestfree information in the verifier 2018-06-04 18:25:04 -07:00
xfs_dir2_leaf.c xfs: remove redundant ASSERT on insufficient bestfree length in _leaf_addname 2018-06-04 14:45:29 -07:00
xfs_dir2_node.c xfs: sanity-check the unused space before trying to use it 2018-03-23 18:05:07 -07:00
xfs_dir2_priv.h xfs: refactor short form directory structure verifier function 2018-01-08 10:54:46 -08:00
xfs_dir2_sf.c xfs: directory scrubber must walk through data block to offset 2018-01-17 21:00:46 -08:00
xfs_dir2.c xfs: refactor the geometry structure filling function 2018-01-08 10:54:48 -08:00
xfs_dir2.h xfs: sanity-check the unused space before trying to use it 2018-03-23 18:05:07 -07:00
xfs_dquot_buf.c xfs: print specific dqblk that failed verifiers 2018-05-09 10:04:01 -07:00
xfs_errortag.h xfs: implement the metadata repair ioctl flag 2018-05-15 18:12:50 -07:00
xfs_format.h xfs: implement online get/set fs label 2018-05-16 08:50:16 -07:00
xfs_fs.h xfs: implement the metadata repair ioctl flag 2018-05-15 18:12:50 -07:00
xfs_ialloc_btree.c xfs: fix inobt magic number check 2018-05-29 10:46:03 -07:00
xfs_ialloc_btree.h xfs: add helpers to calculate btree size 2018-05-15 17:57:05 -07:00
xfs_ialloc.c xfs: verify AGI unlinked list contains valid blocks 2018-06-03 16:12:16 -07:00
xfs_ialloc.h xfs: expose various functions to repair code 2018-05-15 17:57:05 -07:00
xfs_iext_tree.c xfs: move xfs_iext_insert tracepoint to report useful information 2017-12-14 09:20:11 -08:00
xfs_inode_buf.c xfs: enhance dinode verifier 2018-04-17 17:10:17 -07:00
xfs_inode_buf.h xfs: move inode extent size hint validation to libxfs 2018-03-23 18:05:08 -07:00
xfs_inode_fork.c xfs: refactor inode verifier error logging 2018-03-23 18:05:07 -07:00
xfs_inode_fork.h xfs: provide a centralized method for verifying inline fork data 2018-01-08 10:54:47 -08:00
xfs_log_format.h xfs: fix type usage 2017-11-16 12:06:45 -08:00
xfs_log_recover.h xfs: remove double-underscore integer types 2017-06-19 14:11:33 -07:00
xfs_log_rlimit.c xfs: trace log reservations at mount time 2018-01-08 10:54:47 -08:00
xfs_quota_defs.h xfs: replace XFS_QMOPT_DQALLOC with a simple boolean 2018-05-10 08:56:48 -07:00
xfs_refcount_btree.c xfs: don't ASSERT on short form btree root pointer of zero 2018-06-04 14:45:30 -07:00
xfs_refcount_btree.h xfs: non-scrub - remove unused function parameters 2018-04-09 10:23:42 -07:00
xfs_refcount.c xfs: fix error handling in xfs_refcount_insert() 2018-06-01 09:00:16 -07:00
xfs_refcount.h xfs: add repair helpers for the reference count btree 2018-05-15 17:57:05 -07:00
xfs_rmap_btree.c xfs: don't ASSERT on short form btree root pointer of zero 2018-06-04 14:45:30 -07:00
xfs_rmap_btree.h xfs: non-scrub - remove unused function parameters 2018-04-09 10:23:42 -07:00
xfs_rmap.c xfs: add repair helpers for the reverse mapping btree 2018-05-15 17:57:05 -07:00
xfs_rmap.h xfs: add repair helpers for the reverse mapping btree 2018-05-15 17:57:05 -07:00
xfs_rtbitmap.c xfs: fix xfs_rtalloc_rec units 2018-06-01 09:00:16 -07:00
xfs_sb.c xfs: repair superblocks 2018-05-30 08:03:15 -07:00
xfs_sb.h xfs: repair superblocks 2018-05-30 08:03:15 -07:00
xfs_shared.h xfs: superblock scrub should use short-lived buffers 2018-05-15 17:57:05 -07:00
xfs_symlink_remote.c Split buffer's b_fspriv field 2018-01-29 07:27:22 -08:00
xfs_trans_resv.c xfs: non-scrub - remove unused function parameters 2018-04-09 10:23:42 -07:00
xfs_trans_resv.h xfs: increase log reservations for reflink 2016-10-05 16:26:29 -07:00
xfs_trans_space.h xfs: reserve enough blocks to handle btree splits when remapping 2017-05-03 13:21:40 -07:00
xfs_types.h xfs: xfs_rtword_t should be unsigned, not signed 2018-06-01 09:00:16 -07:00