linux/fs/xfs/libxfs
Darrick J. Wong 55edcd1f86 xfs: split xfs_bmap_add_attrfork into two pieces
Split this function into two pieces -- one to make the actual changes to
the inode core to add the attr fork, and another one to deal with
getting the transaction and locking the inodes.

The next couple of patches will need this to be split into two.  One
patch implements committing new parent pointer recordsets to damaged
files.  If one file has an attr fork and the other does not, we have to
create the missing attr fork before the atomic swap transaction, and can
use the behavior encoded in the current xfs_bmap_add_attrfork.

The second patch adapts /lost+found adoptions to handle parent pointers
correctly.  The adoption process will add a parent pointer to a child
that is being moved to /lost+found, but this requires that the attr fork
already exists.  We don't know if we're actually going to commit the
adoption until we've already reserved a transaction and taken the
ILOCKs, which means that we must have a way to bypass the start of the
current xfs_bmap_add_attrfork.

Therefore, create xfs_attr_add_fork as the helper that creates a
transaction and takes locks; and make xfs_bmap_add_attrfork the function
that updates the inode core and allocates the incore attr fork.

Signed-off-by: Darrick J. Wong <djwong@kernel.org>
Reviewed-by: Christoph Hellwig <hch@lst.de>
2024-04-23 16:55:15 -07:00
..
xfs_ag_resv.c xfs: split xfs_mod_freecounter 2024-04-22 18:00:47 +05:30
xfs_ag_resv.h xfs: split xfs_mod_freecounter 2024-04-22 18:00:47 +05:30
xfs_ag.c xfs: split xfs_mod_freecounter 2024-04-22 18:00:47 +05:30
xfs_ag.h xfs: hook live rmap operations during a repair operation 2024-02-22 12:43:40 -08:00
xfs_alloc_btree.c xfs: rename btree helpers that depends on the block number representation 2024-02-22 12:40:58 -08:00
xfs_alloc_btree.h xfs: split xfs_allocbt_init_cursor 2024-02-22 12:40:12 -08:00
xfs_alloc.c xfs: split xfs_mod_freecounter 2024-04-22 18:00:47 +05:30
xfs_alloc.h xfs: repair free space btrees 2023-12-15 10:03:32 -08:00
xfs_attr_leaf.c xfs: don't remove the attr fork when parent pointers are enabled 2024-04-23 07:47:00 -07:00
xfs_attr_leaf.h xfs: validate attr leaf buffer owners 2024-04-15 14:58:51 -07:00
xfs_attr_remote.c xfs: validate attr remote value buffer owners 2024-04-15 14:58:51 -07: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: pass the attr value to put_listent when possible 2024-04-23 07:47:00 -07:00
xfs_attr.c xfs: split xfs_bmap_add_attrfork into two pieces 2024-04-23 16:55:15 -07:00
xfs_attr.h xfs: make the reserved block permission flag explicit in xfs_attr_set 2024-04-23 07:47:03 -07:00
xfs_bit.c
xfs_bit.h xfs: Use the correct style for SPDX License Identifier 2020-05-13 15:32:45 -07:00
xfs_bmap_btree.c xfs: rename btree helpers that depends on the block number representation 2024-02-22 12:40:58 -08:00
xfs_bmap_btree.h xfs: remove xfs_bmbt_stage_cursor 2024-02-22 12:39:45 -08:00
xfs_bmap.c xfs: split xfs_bmap_add_attrfork into two pieces 2024-04-23 16:55:15 -07:00
xfs_bmap.h xfs: split xfs_bmap_add_attrfork into two pieces 2024-04-23 16:55:15 -07:00
xfs_btree_mem.c xfs: launder in-memory btree buffers before transaction commit 2024-02-22 12:43:36 -08:00
xfs_btree_mem.h xfs: launder in-memory btree buffers before transaction commit 2024-02-22 12:43:36 -08:00
xfs_btree_staging.c xfs: xfs_btree_bload_prep_block() should use __GFP_NOFAIL 2024-02-28 14:04:30 +05:30
xfs_btree_staging.h xfs: don't override bc_ops for staging btrees 2024-02-22 12:37:35 -08:00
xfs_btree.c xfs: support in-memory btrees 2024-02-22 12:43:35 -08:00
xfs_btree.h xfs: support in-memory btrees 2024-02-22 12:43:35 -08:00
xfs_cksum.h
xfs_da_btree.c xfs: validate directory leaf buffer owners 2024-04-15 14:58:51 -07:00
xfs_da_btree.h xfs: create attr log item opcodes and formats for parent pointers 2024-04-23 07:46:57 -07:00
xfs_da_format.h xfs: don't return XFS_ATTR_PARENT attributes via listxattr 2024-04-23 07:46:59 -07:00
xfs_defer.c xfs: Increase XFS_DEFER_OPS_NR_INODES to 5 2024-04-15 14:59:01 -07:00
xfs_defer.h xfs: Increase XFS_DEFER_OPS_NR_INODES to 5 2024-04-15 14:59:01 -07:00
xfs_dir2_block.c xfs: validate explicit directory block buffer owners 2024-04-15 14:58:52 -07:00
xfs_dir2_data.c xfs: validate explicit directory data buffer owners 2024-04-15 14:58:52 -07:00
xfs_dir2_leaf.c xfs: validate explicit directory free block owners 2024-04-15 14:58:52 -07:00
xfs_dir2_node.c xfs: validate explicit directory free block owners 2024-04-15 14:58:52 -07:00
xfs_dir2_priv.h xfs: validate explicit directory free block owners 2024-04-15 14:58:52 -07:00
xfs_dir2_sf.c xfs: convert remaining kmem_free() to kfree() 2024-02-13 18:07:34 +05:30
xfs_dir2.c xfs: add raw parent pointer apis to support repair 2024-04-23 07:47:04 -07:00
xfs_dir2.h xfs: add raw parent pointer apis to support repair 2024-04-23 07:47: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 error injection to test file mapping exchange recovery 2024-04-15 14:54:19 -07:00
xfs_exchmaps.c xfs: use atomic extent swapping to fix user file fork data 2024-04-15 14:58:53 -07:00
xfs_exchmaps.h xfs: use atomic extent swapping to fix user file fork data 2024-04-15 14:58:53 -07:00
xfs_format.h xfs: enable parent pointers 2024-04-23 07:47:01 -07:00
xfs_fs.h xfs: add a incompat feature bit for parent pointers 2024-04-23 07:47:01 -07:00
xfs_health.h xfs: remember sick inodes that get inactivated 2024-02-22 12:33:03 -08:00
xfs_ialloc_btree.c xfs: pass xfs_buf lookup flags to xfs_*read_agi 2024-04-15 14:54:03 -07:00
xfs_ialloc_btree.h xfs: split xfs_inobt_init_cursor 2024-02-22 12:40:49 -08:00
xfs_ialloc.c xfs: try to avoid allocating from sick inode clusters 2024-04-15 14:58:59 -07:00
xfs_ialloc.h xfs: pass xfs_buf lookup flags to xfs_*read_agi 2024-04-15 14:54:03 -07:00
xfs_iext_tree.c xfs: use __GFP_NOLOCKDEP instead of GFP_NOFS 2024-02-13 18:07:34 +05:30
xfs_inode_buf.c xfs: check unused nlink fields in the ondisk inode 2024-04-15 14:58:59 -07:00
xfs_inode_buf.h xfs: kill xfs_sb_version_has_v3inode() 2021-08-19 10:07:14 -07:00
xfs_inode_fork.c xfs: move xfs_symlink_remote.c declarations to xfs_symlink_remote.h 2024-02-22 12:45:01 -08:00
xfs_inode_fork.h xfs: create a helper to decide if a file mapping targets the rt volume 2024-02-22 12:43:36 -08:00
xfs_log_format.h xfs: record inode generation in xattr update log intent items 2024-04-23 07:46:57 -07:00
xfs_log_recover.h xfs: capture inode generation numbers in the ondisk exchmaps log item 2024-04-15 14:54:24 -07:00
xfs_log_rlimit.c xfs: drop compatibility minimum log size computations for reflink 2024-04-23 07:47:01 -07:00
xfs_ondisk.h xfs: add parent pointer ioctls 2024-04-23 07:47:00 -07:00
xfs_parent.c xfs: add raw parent pointer apis to support repair 2024-04-23 07:47:04 -07:00
xfs_parent.h xfs: add raw parent pointer apis to support repair 2024-04-23 07:47:04 -07:00
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: rename btree helpers that depends on the block number representation 2024-02-22 12:40:58 -08:00
xfs_refcount_btree.h xfs: remove xfs_refcountbt_stage_cursor 2024-02-22 12:39:40 -08:00
xfs_refcount.c xfs: split the per-btree union in struct xfs_btree_cur 2024-02-22 12:37:03 -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: create a shadow rmap btree during rmap repair 2024-02-22 12:43:39 -08:00
xfs_rmap_btree.h xfs: create a shadow rmap btree during rmap repair 2024-02-22 12:43:39 -08:00
xfs_rmap.c xfs: hook live rmap operations during a repair operation 2024-02-22 12:43:40 -08:00
xfs_rmap.h xfs: hook live rmap operations during a repair operation 2024-02-22 12:43:40 -08:00
xfs_rtbitmap.c xfs: refactor realtime inode locking 2024-04-22 18:00:47 +05:30
xfs_rtbitmap.h xfs: refactor realtime inode locking 2024-04-22 18:00:47 +05:30
xfs_sb.c xfs: add a incompat feature bit for parent pointers 2024-04-23 07:47:01 -07:00
xfs_sb.h xfs: allow sunit mount option to repair bad primary sb stripe values 2024-03-25 10:17:18 +05:30
xfs_shared.h xfs: move RT inode locking out of __xfs_bunmapi 2024-04-22 18:00:47 +05:30
xfs_symlink_remote.c xfs: pass the owner to xfs_symlink_write_target 2024-04-15 14:58:57 -07:00
xfs_symlink_remote.h xfs: pass the owner to xfs_symlink_write_target 2024-04-15 14:58:57 -07:00
xfs_trans_inode.c xfs: Replace xfs_isilocked with xfs_assert_ilocked 2024-02-19 21:19:33 +05:30
xfs_trans_resv.c xfs: extend transaction reservations for parent attributes 2024-04-23 07:46:57 -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.c xfs: Add parent pointers to rename 2024-04-23 07:46:59 -07:00
xfs_trans_space.h xfs: Add parent pointers to rename 2024-04-23 07:46:59 -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 xfs_btnum_t 2024-02-22 12:40:51 -08:00