Re: [PATCHSET 02/10] libxfs: sync with 6.8

Bill O'Donnell
2024-03-13T17:43:08Z

On Tue, Mar 12, 2024 at 06:47:34PM -0700, Darrick J. Wong wrote:
> Hi all,
>
> Synchronize libxfs with the kernel.
>
> If you're going to start using this code, I strongly recommend pulling
> from my git trees, which are linked below.
>
> This has been running on the djcloud for months with no problems. Enjoy!
> Comments and questions are, as always, welcome.
>
> --D

Series...
Reviewed by Bill O'Donnell <bodonnel@redhat.com>

>
> xfsprogs git tree:
> https://git.kernel.org/cgit/linux/kernel/git/djwong/xfsprogs-dev.git/log/?h=libxfs-6.8-sync
> ---
> Commits in this patchset:
> * xfs: use xfs_defer_pending objects to recover intent items
> * xfs: recreate work items when recovering intent items
> * xfs: use xfs_defer_finish_one to finish recovered work items
> * xfs: move ->iop_recover to xfs_defer_op_type
> * xfs: hoist intent done flag setting to ->finish_item callsite
> * xfs: hoist ->create_intent boilerplate to its callsite
> * xfs: use xfs_defer_create_done for the relogging operation
> * xfs: clean out XFS_LI_DIRTY setting boilerplate from ->iop_relog
> * xfs: hoist xfs_trans_add_item calls to defer ops functions
> * xfs: move ->iop_relog to struct xfs_defer_op_type
> * xfs: make rextslog computation consistent with mkfs
> * xfs: fix 32-bit truncation in xfs_compute_rextslog
> * xfs: don't allow overly small or large realtime volumes
> * xfs: elide ->create_done calls for unlogged deferred work
> * xfs: don't append work items to logged xfs_defer_pending objects
> * xfs: allow pausing of pending deferred work items
> * xfs: remove __xfs_free_extent_later
> * xfs: automatic freeing of freshly allocated unwritten space
> * xfs: remove unused fields from struct xbtree_ifakeroot
> * xfs: force small EFIs for reaping btree extents
> * xfs: ensure logflagsp is initialized in xfs_bmap_del_extent_real
> * xfs: update dir3 leaf block metadata after swap
> * xfs: extract xfs_da_buf_copy() helper function
> * xfs: move xfs_ondisk.h to libxfs/
> * xfs: consolidate the xfs_attr_defer_* helpers
> * xfs: store an ops pointer in struct xfs_defer_pending
> * xfs: pass the defer ops instead of type to xfs_defer_start_recovery
> * xfs: pass the defer ops directly to xfs_defer_add
> * xfs: force all buffers to be written during btree bulk load
> * xfs: set XBF_DONE on newly formatted btree block that are ready for writing
> * xfs: read leaf blocks when computing keys for bulkloading into node blocks
> * xfs: move btree bulkload record initialization to ->get_record implementations
> * xfs: constrain dirty buffers while formatting a staged btree
> * xfs: repair free space btrees
> * xfs: repair inode btrees
> * xfs: repair refcount btrees
> * xfs: dont cast to char * for XFS_DFORK_*PTR macros
> * xfs: set inode sick state flags when we zap either ondisk fork
> * xfs: zap broken inode forks
> * xfs: repair inode fork block mapping data structures
> * xfs: create a ranged query function for refcount btrees
> * xfs: create a new inode fork block unmap helper
> * xfs: improve dquot iteration for scrub
> * xfs: add lock protection when remove perag from radix tree
> * xfs: fix perag leak when growfs fails
> * xfs: remove the xfs_alloc_arg argument to xfs_bmap_btalloc_accounting
> * xfs: also use xfs_bmap_btalloc_accounting for RT allocations
> * xfs: return -ENOSPC from xfs_rtallocate_*
> * xfs: indicate if xfs_bmap_adjacent changed ap->blkno
> * xfs: move xfs_rtget_summary to xfs_rtbitmap.c
> * xfs: split xfs_rtmodify_summary_int
> * xfs: remove rt-wrappers from xfs_format.h
> * xfs: remove XFS_RTMIN/XFS_RTMAX
> * xfs: make if_data a void pointer
> * xfs: return if_data from xfs_idata_realloc
> * xfs: move the xfs_attr_sf_lookup tracepoint
> * xfs: simplify xfs_attr_sf_findname
> * xfs: remove xfs_attr_shortform_lookup
> * xfs: use xfs_attr_sf_findname in xfs_attr_shortform_getvalue
> * xfs: remove struct xfs_attr_shortform
> * xfs: remove xfs_attr_sf_hdr_t
> * xfs: turn the XFS_DA_OP_REPLACE checks in xfs_attr_shortform_addname into asserts
> * xfs: fix a use after free in xfs_defer_finish_recovery
> * xfs: use the op name in trace_xlog_intent_recovery_failed
> * xfs: fix backwards logic in xfs_bmap_alloc_account
> * xfs: reset XFS_ATTR_INCOMPLETE filter on node removal
> * xfs: remove conditional building of rt geometry validator functions
> ---
> db/attrshort.c | 35 ++-
> db/check.c | 12 +
> db/inode.c | 6 -
> db/metadump.c | 16 +-
> db/namei.c | 4
> include/list.h | 14 +
> include/xfs_trace.h | 5
> include/xfs_trans.h | 1
> libxfs/defer_item.c | 16 +-
> libxfs/init.c | 6 +
> libxfs/libxfs_api_defs.h | 4
> libxfs/libxfs_io.h | 11 +
> libxfs/libxfs_priv.h | 7 -
> libxfs/util.c | 2
> libxfs/xfs_ag.c | 38 +++-
> libxfs/xfs_ag.h | 12 +
> libxfs/xfs_ag_resv.c | 2
> libxfs/xfs_alloc.c | 116 ++++++++++-
> libxfs/xfs_alloc.h | 24 +-
> libxfs/xfs_alloc_btree.c | 13 +
> libxfs/xfs_attr.c | 131 ++++--------
> libxfs/xfs_attr_leaf.c | 244 ++++++++---------------
> libxfs/xfs_attr_leaf.h | 8 -
> libxfs/xfs_attr_sf.h | 24 +-
> libxfs/xfs_bmap.c | 201 ++++++++++++-------
> libxfs/xfs_bmap.h | 9 +
> libxfs/xfs_bmap_btree.c | 124 ++++++++++--
> libxfs/xfs_bmap_btree.h | 5
> libxfs/xfs_btree.c | 28 +++
> libxfs/xfs_btree.h | 5
> libxfs/xfs_btree_staging.c | 89 ++++++--
> libxfs/xfs_btree_staging.h | 33 ++-
> libxfs/xfs_da_btree.c | 69 +++----
> libxfs/xfs_da_btree.h | 2
> libxfs/xfs_da_format.h | 31 ++-
> libxfs/xfs_defer.c | 452 +++++++++++++++++++++++++++++++++++--------
> libxfs/xfs_defer.h | 59 ++++--
> libxfs/xfs_dir2.c | 2
> libxfs/xfs_dir2_block.c | 6 -
> libxfs/xfs_dir2_priv.h | 3
> libxfs/xfs_dir2_sf.c | 91 +++------
> libxfs/xfs_format.h | 19 --
> libxfs/xfs_health.h | 10 +
> libxfs/xfs_ialloc.c | 36 ++-
> libxfs/xfs_ialloc.h | 3
> libxfs/xfs_ialloc_btree.c | 2
> libxfs/xfs_iext_tree.c | 59 +++---
> libxfs/xfs_inode_fork.c | 78 ++++---
> libxfs/xfs_inode_fork.h | 13 +
> libxfs/xfs_ondisk.h | 199 +++++++++++++++++++
> libxfs/xfs_refcount.c | 57 +++++
> libxfs/xfs_refcount.h | 12 +
> libxfs/xfs_refcount_btree.c | 15 +
> libxfs/xfs_rmap.c | 2
> libxfs/xfs_rtbitmap.c | 134 ++++++-------
> libxfs/xfs_rtbitmap.h | 4
> libxfs/xfs_sb.c | 20 ++
> libxfs/xfs_sb.h | 2
> libxfs/xfs_shared.h | 2
> libxfs/xfs_symlink_remote.c | 12 -
> libxfs/xfs_types.h | 20 ++
> mkfs/proto.c | 4
> mkfs/xfs_mkfs.c | 8 +
> repair/agbtree.c | 57 ++++-
> repair/attr_repair.c | 48 ++---
> repair/dinode.c | 23 +-
> repair/phase6.c | 9 -
> repair/rt.c | 6 -
> repair/sb.c | 6 -
> 69 files changed, 1861 insertions(+), 959 deletions(-)
> create mode 100644 libxfs/xfs_ondisk.h
>
>