linux/fs/xfs/scrub
Darrick J. Wong 4ad350ac58 xfs: only iget the file once when doing vectored scrub-by-handle
If a program wants us to perform a scrub on a file handle and the fd
passed to ioctl() is not the file referenced in the handle, iget the
file once and pass it into the scrub code.  This amortizes the untrusted
iget lookup over /all/ the scrubbers mentioned in the scrubv call.

When running fstests in "rebuild all metadata after each test" mode, I
observed a 10% reduction in runtime on account of avoiding repeated
inobt lookups.

Signed-off-by: Darrick J. Wong <djwong@kernel.org>
Reviewed-by: Christoph Hellwig <hch@lst.de>
2024-04-23 16:55:18 -07:00
..
agb_bitmap.c xfs: move the per-AG datatype bitmaps to separate files 2023-12-15 10:03:30 -08:00
agb_bitmap.h xfs: create agblock bitmap helper to count the number of set regions 2024-02-22 12:43:37 -08:00
agheader_repair.c xfs: repair AGI unlinked inode bucket lists 2024-04-15 14:58:58 -07:00
agheader.c xfs: silence sparse warning when checking version number 2024-04-22 12:51:43 +05:30
agino_bitmap.h xfs: repair AGI unlinked inode bucket lists 2024-04-15 14:58:58 -07:00
alloc_repair.c xfs: fix error bailout in xrep_abt_build_new_trees 2024-04-15 14:54:06 -07:00
alloc.c xfs: repair free space btrees 2023-12-15 10:03:32 -08:00
attr_repair.c xfs: actually rebuild the parent pointer xattrs 2024-04-23 16:55:15 -07:00
attr_repair.h xfs: actually rebuild the parent pointer xattrs 2024-04-23 16:55:15 -07:00
attr.c xfs: add a per-leaf block callback to xchk_xattr_walk 2024-04-23 16:55:15 -07:00
attr.h xfs: repair extended attributes 2024-04-15 14:58:53 -07:00
bitmap.c xfs: fix sparse warnings about unused interval tree functions 2024-04-22 12:51:43 +05:30
bitmap.h xfs: create agblock bitmap helper to count the number of set regions 2024-02-22 12:43:37 -08:00
bmap_repair.c xfs: remove xfs_bmbt_stage_cursor 2024-02-22 12:39:45 -08:00
bmap.c xfs: create a helper to decide if a file mapping targets the rt volume 2024-02-22 12:43:36 -08:00
btree.c xfs: consolidate btree block verification 2024-02-22 12:40:57 -08:00
btree.h overflow: Add struct_size_t() helper 2023-05-26 13:52:19 -07:00
common.c xfs: use dontcache for grabbing inodes during scrub 2024-04-23 16:55:18 -07:00
common.h xfs: reduce the rate of cond_resched calls inside scrub 2024-04-23 16:55:17 -07:00
cow_repair.c xfs: convert remaining kmem_free() to kfree() 2024-02-13 18:07:34 +05:30
dab_bitmap.h xfs: create an xattr iteration function for scrub 2024-04-15 14:58:54 -07:00
dabtree.c xfs: scrub should set preen if attr leaf has holes 2024-04-15 14:58:54 -07:00
dabtree.h xfs: flag empty xattr leaf blocks for optimization 2024-04-15 14:58:54 -07:00
dir_repair.c xfs: add a per-leaf block callback to xchk_xattr_walk 2024-04-23 16:55:15 -07:00
dir.c xfs: deferred scrub of dirents 2024-04-23 07:47:02 -07:00
dirtree_repair.c xfs: fix corruptions in the directory tree 2024-04-23 16:55:17 -07:00
dirtree.c xfs: fix corruptions in the directory tree 2024-04-23 16:55:17 -07:00
dirtree.h xfs: fix corruptions in the directory tree 2024-04-23 16:55:17 -07:00
dqiterate.c xfs: improve dquot iteration for scrub 2023-12-15 10:03:45 -08:00
findparent.c xfs: actually rebuild the parent pointer xattrs 2024-04-23 16:55:15 -07:00
findparent.h xfs: implement live updates for directory repairs 2024-04-23 16:55:13 -07:00
fsb_bitmap.h xfs: reintroduce reaping of file metadata blocks to xrep_reap_extents 2023-12-15 10:03:38 -08:00
fscounters_repair.c xfs: support RT inodes in xfs_mod_delalloc 2024-04-22 18:00:48 +05:30
fscounters.c xfs: support RT inodes in xfs_mod_delalloc 2024-04-22 18:00:48 +05:30
fscounters.h xfs: support RT inodes in xfs_mod_delalloc 2024-04-22 18:00:48 +05:30
health.c xfs: report directory tree corruption in the health information 2024-04-23 16:55:17 -07:00
health.h xfs: refactor the btree cursor allocation logic in xchk_ag_btcur_init 2024-02-22 12:39:48 -08:00
ialloc_repair.c xfs: split xfs_inobt_init_cursor 2024-02-22 12:40:49 -08:00
ialloc.c xfs: remove xfs_btnum_t 2024-02-22 12:40:51 -08:00
ino_bitmap.h xfs: teach online scrub to find directory tree structure problems 2024-04-23 16:55:16 -07:00
inode_repair.c xfs: inode repair should ensure there's an attr fork to store parent pointers 2024-04-23 16:55:16 -07:00
inode.c xfs: ensure unlinked list state is consistent with nlink during scrub 2024-04-15 14:58:54 -07:00
iscan.c xfs: use dontcache for grabbing inodes during scrub 2024-04-23 16:55:18 -07:00
iscan.h xfs: scan the filesystem to repair a directory dotdot entry 2024-04-15 14:58:56 -07:00
listxattr.c xfs: add a per-leaf block callback to xchk_xattr_walk 2024-04-23 16:55:15 -07:00
listxattr.h xfs: add a per-leaf block callback to xchk_xattr_walk 2024-04-23 16:55:15 -07:00
newbt.c xfs: repair the rmapbt 2024-02-22 12:43:38 -08:00
newbt.h xfs: repair the rmapbt 2024-02-22 12:43:38 -08:00
nlinks_repair.c xfs: walk directory parent pointers to determine backref count 2024-04-23 07:47:03 -07:00
nlinks.c xfs: add a per-leaf block callback to xchk_xattr_walk 2024-04-23 16:55:15 -07:00
nlinks.h xfs: move files to orphanage instead of letting nlinks drop to zero 2024-04-15 14:58:57 -07:00
off_bitmap.h xfs: repair problems in CoW forks 2023-12-15 10:03:40 -08:00
orphanage.c xfs: fix corruptions in the directory tree 2024-04-23 16:55:17 -07:00
orphanage.h xfs: fix corruptions in the directory tree 2024-04-23 16:55:17 -07:00
parent_repair.c xfs: repair link count of nondirectories after rebuilding parent pointers 2024-04-23 16:55:16 -07:00
parent.c xfs: add a per-leaf block callback to xchk_xattr_walk 2024-04-23 16:55:15 -07:00
quota_repair.c xfs: repair quotas 2023-12-15 10:03:45 -08:00
quota.c xfs: repair quotas 2023-12-15 10:03:45 -08:00
quota.h xfs: repair quotas 2023-12-15 10:03:45 -08:00
quotacheck_repair.c xfs: repair dquots based on live quotacheck results 2024-02-22 12:30:57 -08:00
quotacheck.c xfs: repair dquots based on live quotacheck results 2024-02-22 12:30:57 -08:00
quotacheck.h xfs: repair dquots based on live quotacheck results 2024-02-22 12:30:57 -08:00
rcbag_btree.c xfs: create refcount bag structure for btree repairs 2024-02-22 12:43:41 -08:00
rcbag_btree.h xfs: create refcount bag structure for btree repairs 2024-02-22 12:43:41 -08:00
rcbag.c xfs: create refcount bag structure for btree repairs 2024-02-22 12:43:41 -08:00
rcbag.h xfs: create refcount bag structure for btree repairs 2024-02-22 12:43:41 -08:00
readdir.c xfs: deferred scrub of dirents 2024-04-23 07:47:02 -07:00
readdir.h xfs: deferred scrub of dirents 2024-04-23 07:47:02 -07:00
reap.c xfs: add the ability to reap entire inode forks 2024-04-15 14:58:49 -07:00
reap.h xfs: add the ability to reap entire inode forks 2024-04-15 14:58:49 -07:00
refcount_repair.c xfs: port refcount repair to the new refcount bag structure 2024-02-22 12:43:42 -08:00
refcount.c xfs: port refcount repair to the new refcount bag structure 2024-02-22 12:43:42 -08:00
repair.c xfs: split xfs_mod_freecounter 2024-04-22 18:00:47 +05:30
repair.h xfs: fix corruptions in the directory tree 2024-04-23 16:55:17 -07:00
rmap_repair.c xfs: Remove unused function is_rt_data_fork 2024-04-22 12:51:43 +05:30
rmap.c xfs: repair the rmapbt 2024-02-22 12:43:38 -08:00
rtbitmap_repair.c xfs: online repair of realtime bitmaps 2023-12-15 10:03:43 -08:00
rtbitmap.c xfs: remove conditional building of rt geometry validator functions 2024-01-30 14:04:43 +05:30
rtbitmap.h xfs: online repair of realtime bitmaps 2023-12-15 10:03:43 -08:00
rtsummary_repair.c xfs: online repair of realtime summaries 2024-04-15 14:58:49 -07:00
rtsummary.c xfs: online repair of realtime summaries 2024-04-15 14:58:49 -07:00
rtsummary.h xfs: online repair of realtime summaries 2024-04-15 14:58:49 -07:00
scrub.c xfs: only iget the file once when doing vectored scrub-by-handle 2024-04-23 16:55:18 -07:00
scrub.h xfs: use dontcache for grabbing inodes during scrub 2024-04-23 16:55:18 -07:00
stats.c xfs: teach online scrub to find directory tree structure problems 2024-04-23 16:55:16 -07:00
stats.h xfs: track usage statistics of online fsck 2023-08-10 07:48:07 -07:00
symlink_repair.c xfs: add parent attributes to symlink 2024-04-23 07:46:58 -07:00
symlink.c xfs: online repair of symbolic links 2024-04-15 14:58:58 -07:00
tempexch.h xfs: use atomic extent swapping to fix user file fork data 2024-04-15 14:58:53 -07:00
tempfile.c xfs: parent pointer attribute creation 2024-04-23 07:46:58 -07:00
tempfile.h xfs: online repair of directories 2024-04-15 14:58:55 -07:00
trace.c xfs: teach online scrub to find directory tree structure problems 2024-04-23 16:55:16 -07:00
trace.h xfs: introduce vectored scrub mode 2024-04-23 16:55:18 -07:00
xfarray.c xfs: reduce the rate of cond_resched calls inside scrub 2024-04-23 16:55:17 -07:00
xfarray.h xfs: reduce the rate of cond_resched calls inside scrub 2024-04-23 16:55:17 -07:00
xfblob.c xfs: repair extended attributes 2024-04-15 14:58:53 -07:00
xfblob.h xfs: online repair of directories 2024-04-15 14:58:55 -07:00
xfile.c xfs: reduce the rate of cond_resched calls inside scrub 2024-04-23 16:55:17 -07:00
xfile.h xfs: repair extended attributes 2024-04-15 14:58:53 -07:00
xfs_scrub.h xfs: introduce vectored scrub mode 2024-04-23 16:55:18 -07:00