linux/fs/xfs/scrub
Darrick J. Wong b11b11e3b7 xfs: separate the icreate logic around INIT_XATTRS
INIT_XATTRS is overloaded here -- it's set during the creat process when
we think that we're immediately going to set some ACL xattrs to save
time.  However, it's also used by the parent pointers code to enable the
attr fork in preparation to receive ppptr xattrs.  This results in
xfs_has_parent() branches scattered around the codebase to turn on
INIT_XATTRS.

Linkable files are created far more commonly than unlinkable temporary
files or directory tree roots, so we should centralize this logic in
xfs_inode_init.  For the three callers that don't want parent pointers
(online repiar tempfiles, unlinkable tempfiles, rootdir creation) we
provide an UNLINKABLE flag to skip attr fork initialization.

Signed-off-by: Darrick J. Wong <djwong@kernel.org>
Reviewed-by: Christoph Hellwig <hch@lst.de>
2024-07-02 11:36:58 -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: exchange-range for repairs is no longer dynamic 2024-04-23 16:55:19 -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: factor out a xfs_dir_replace_args helper 2024-04-26 11:19:04 +05:30
dir.c xfs: refactor dir format helpers 2024-04-26 11:21:46 +05:30
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: drop the scrub file's iolock when transaction allocation fails 2024-04-23 16:55:18 -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: invalidate dentries for a file before moving it to the orphanage 2024-04-23 16:55:19 -07:00
orphanage.h xfs: fix corruptions in the directory tree 2024-04-23 16:55:17 -07:00
parent_repair.c xfs: exchange-range for repairs is no longer dynamic 2024-04-23 16:55:19 -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: Remove header files which are included more than once 2024-07-01 09:32:29 +05:30
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: refactor dir format helpers 2024-04-26 11:21:46 +05:30
readdir.h xfs: deferred scrub of dirents 2024-04-23 07:47:02 -07:00
reap.c xfs: create a helper to compute the blockcount of a max sized remote value 2024-05-02 07:48:36 -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: fix error returns from xfs_bmapi_write 2024-04-30 09:45:18 +05:30
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: exchange-range for repairs is no longer dynamic 2024-04-23 16:55:19 -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: don't open-code u64_to_user_ptr 2024-05-27 15:55:52 +05:30
scrub.h xfs: exchange-range for repairs is no longer dynamic 2024-04-23 16:55:19 -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: exchange-range for repairs is no longer dynamic 2024-04-23 16:55:19 -07:00
symlink.c xfs: online repair of symbolic links 2024-04-15 14:58:58 -07:00
tempexch.h xfs: exchange-range for repairs is no longer dynamic 2024-04-23 16:55:19 -07:00
tempfile.c xfs: separate the icreate logic around INIT_XATTRS 2024-07-02 11:36: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 tracing/treewide: Remove second parameter of __assign_str() 2024-05-22 20:14:47 -04:00
xfarray.c xfs: drop xfarray sortinfo folio on error 2024-05-27 15:55:52 +05:30
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