linux-xfs.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Bill O'Donnell <bodonnel@redhat.com>
To: "Darrick J. Wong" <djwong@kernel.org>
Cc: cem@kernel.org, linux-xfs@vger.kernel.org
Subject: Re: [PATCH 1/3] xfs_repair: push inode buf and dinode pointers all the way to inode fork processing
Date: Wed, 13 Mar 2024 16:58:46 -0500	[thread overview]
Message-ID: <ZfIhlo3VrvnAfHc6@redhat.com> (raw)
In-Reply-To: <171029434340.2065697.11904740279941887091.stgit@frogsfrogsfrogs>

On Tue, Mar 12, 2024 at 07:14:09PM -0700, Darrick J. Wong wrote:
> From: Darrick J. Wong <djwong@kernel.org>
> 
> Currently, the process_dinode* family of functions assume that they have
> the buffer backing the inodes locked, and therefore the dinode pointer
> won't ever change.  However, the bmbt rebuilding code in the next patch
> will violate that assumption, so we must pass pointers to the inobp and
> the dinode pointer (that is to say, double pointers) all the way through
> to process_inode_{data,attr}_fork so that we can regrab the buffer after
> the rebuilding step finishes.
> 
> Signed-off-by: Darrick J. Wong <djwong@kernel.org>

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

> ---
>  repair/dino_chunks.c |    5 ++-
>  repair/dinode.c      |   88 ++++++++++++++++++++++++++++----------------------
>  repair/dinode.h      |    7 ++--
>  3 files changed, 57 insertions(+), 43 deletions(-)
> 
> 
> diff --git a/repair/dino_chunks.c b/repair/dino_chunks.c
> index 171756818a6a..195361334519 100644
> --- a/repair/dino_chunks.c
> +++ b/repair/dino_chunks.c
> @@ -851,10 +851,11 @@ process_inode_chunk(
>  		ino_dirty = 0;
>  		parent = 0;
>  
> -		status = process_dinode(mp, dino, agno, agino,
> +		status = process_dinode(mp, &dino, agno, agino,
>  				is_inode_free(ino_rec, irec_offset),
>  				&ino_dirty, &is_used,ino_discovery, check_dups,
> -				extra_attr_check, &isa_dir, &parent);
> +				extra_attr_check, &isa_dir, &parent,
> +				&bplist[bp_index]);
>  
>  		ASSERT(is_used != 3);
>  		if (ino_dirty) {
> diff --git a/repair/dinode.c b/repair/dinode.c
> index 164f51d4c4fc..a18af3ff7772 100644
> --- a/repair/dinode.c
> +++ b/repair/dinode.c
> @@ -1893,17 +1893,19 @@ _("nblocks (%" PRIu64 ") smaller than nextents for inode %" PRIu64 "\n"), nblock
>   */
>  static int
>  process_inode_data_fork(
> -	xfs_mount_t		*mp,
> +	struct xfs_mount	*mp,
>  	xfs_agnumber_t		agno,
>  	xfs_agino_t		ino,
> -	struct xfs_dinode	*dino,
> +	struct xfs_dinode	**dinop,
>  	int			type,
>  	int			*dirty,
>  	xfs_rfsblock_t		*totblocks,
>  	xfs_extnum_t		*nextents,
>  	blkmap_t		**dblkmap,
> -	int			check_dups)
> +	int			check_dups,
> +	struct xfs_buf		**ino_bpp)
>  {
> +	struct xfs_dinode	*dino = *dinop;
>  	xfs_ino_t		lino = XFS_AGINO_TO_INO(mp, agno, ino);
>  	int			err = 0;
>  	xfs_extnum_t		nex, max_nex;
> @@ -2005,20 +2007,22 @@ process_inode_data_fork(
>   */
>  static int
>  process_inode_attr_fork(
> -	xfs_mount_t		*mp,
> +	struct xfs_mount	*mp,
>  	xfs_agnumber_t		agno,
>  	xfs_agino_t		ino,
> -	struct xfs_dinode	*dino,
> +	struct xfs_dinode	**dinop,
>  	int			type,
>  	int			*dirty,
>  	xfs_rfsblock_t		*atotblocks,
>  	xfs_extnum_t		*anextents,
>  	int			check_dups,
>  	int			extra_attr_check,
> -	int			*retval)
> +	int			*retval,
> +	struct xfs_buf		**ino_bpp)
>  {
>  	xfs_ino_t		lino = XFS_AGINO_TO_INO(mp, agno, ino);
> -	blkmap_t		*ablkmap = NULL;
> +	struct xfs_dinode	*dino = *dinop;
> +	struct blkmap		*ablkmap = NULL;
>  	int			repair = 0;
>  	int			err;
>  
> @@ -2077,7 +2081,7 @@ process_inode_attr_fork(
>  		 * XXX - put the inode onto the "move it" list and
>  		 *	log the the attribute scrubbing
>  		 */
> -		do_warn(_("bad attribute fork in inode %" PRIu64), lino);
> +		do_warn(_("bad attribute fork in inode %" PRIu64 "\n"), lino);
>  
>  		if (!no_modify)  {
>  			do_warn(_(", clearing attr fork\n"));
> @@ -2274,21 +2278,22 @@ _("Bad extent size hint %u on inode %" PRIu64 ", "),
>   * for detailed, info, look at process_dinode() comments.
>   */
>  static int
> -process_dinode_int(xfs_mount_t *mp,
> -		struct xfs_dinode *dino,
> -		xfs_agnumber_t agno,
> -		xfs_agino_t ino,
> -		int was_free,		/* 1 if inode is currently free */
> -		int *dirty,		/* out == > 0 if inode is now dirty */
> -		int *used,		/* out == 1 if inode is in use */
> -		int verify_mode,	/* 1 == verify but don't modify inode */
> -		int uncertain,		/* 1 == inode is uncertain */
> -		int ino_discovery,	/* 1 == check dirs for unknown inodes */
> -		int check_dups,		/* 1 == check if inode claims
> -					 * duplicate blocks		*/
> -		int extra_attr_check, /* 1 == do attribute format and value checks */
> -		int *isa_dir,		/* out == 1 if inode is a directory */
> -		xfs_ino_t *parent)	/* out -- parent if ino is a dir */
> +process_dinode_int(
> +	struct xfs_mount	*mp,
> +	struct xfs_dinode	**dinop,
> +	xfs_agnumber_t		agno,
> +	xfs_agino_t		ino,
> +	int			was_free,	/* 1 if inode is currently free */
> +	int			*dirty,		/* out == > 0 if inode is now dirty */
> +	int			*used,		/* out == 1 if inode is in use */
> +	int			verify_mode,	/* 1 == verify but don't modify inode */
> +	int			uncertain,	/* 1 == inode is uncertain */
> +	int			ino_discovery,	/* 1 == check dirs for unknown inodes */
> +	int			check_dups,	/* 1 == check if inode claims duplicate blocks */
> +	int			extra_attr_check, /* 1 == do attribute format and value checks */
> +	int			*isa_dir,	/* out == 1 if inode is a directory */
> +	xfs_ino_t		*parent,	/* out -- parent if ino is a dir */
> +	struct xfs_buf		**ino_bpp)
>  {
>  	xfs_rfsblock_t		totblocks = 0;
>  	xfs_rfsblock_t		atotblocks = 0;
> @@ -2301,6 +2306,7 @@ process_dinode_int(xfs_mount_t *mp,
>  	const int		is_free = 0;
>  	const int		is_used = 1;
>  	blkmap_t		*dblkmap = NULL;
> +	struct xfs_dinode	*dino = *dinop;
>  	xfs_agino_t		unlinked_ino;
>  	struct xfs_perag	*pag;
>  
> @@ -2324,6 +2330,7 @@ process_dinode_int(xfs_mount_t *mp,
>  	 * If uncertain is set, verify_mode MUST be set.
>  	 */
>  	ASSERT(uncertain == 0 || verify_mode != 0);
> +	ASSERT(ino_bpp != NULL || verify_mode != 0);
>  
>  	/*
>  	 * This is the only valid point to check the CRC; after this we may have
> @@ -2863,18 +2870,21 @@ _("Bad CoW extent size %u on inode %" PRIu64 ", "),
>  	/*
>  	 * check data fork -- if it's bad, clear the inode
>  	 */
> -	if (process_inode_data_fork(mp, agno, ino, dino, type, dirty,
> -			&totblocks, &nextents, &dblkmap, check_dups) != 0)
> +	if (process_inode_data_fork(mp, agno, ino, dinop, type, dirty,
> +			&totblocks, &nextents, &dblkmap, check_dups,
> +			ino_bpp) != 0)
>  		goto bad_out;
> +	dino = *dinop;
>  
>  	/*
>  	 * check attribute fork if necessary.  attributes are
>  	 * always stored in the regular filesystem.
>  	 */
> -	if (process_inode_attr_fork(mp, agno, ino, dino, type, dirty,
> +	if (process_inode_attr_fork(mp, agno, ino, dinop, type, dirty,
>  			&atotblocks, &anextents, check_dups, extra_attr_check,
> -			&retval))
> +			&retval, ino_bpp))
>  		goto bad_out;
> +	dino = *dinop;
>  
>  	/*
>  	 * enforce totblocks is 0 for misc types
> @@ -2992,8 +3002,8 @@ _("Bad CoW extent size %u on inode %" PRIu64 ", "),
>  
>  int
>  process_dinode(
> -	xfs_mount_t		*mp,
> -	struct xfs_dinode	*dino,
> +	struct xfs_mount	*mp,
> +	struct xfs_dinode	**dinop,
>  	xfs_agnumber_t		agno,
>  	xfs_agino_t		ino,
>  	int			was_free,
> @@ -3003,7 +3013,8 @@ process_dinode(
>  	int			check_dups,
>  	int			extra_attr_check,
>  	int			*isa_dir,
> -	xfs_ino_t		*parent)
> +	xfs_ino_t		*parent,
> +	struct xfs_buf		**ino_bpp)
>  {
>  	const int		verify_mode = 0;
>  	const int		uncertain = 0;
> @@ -3011,9 +3022,10 @@ process_dinode(
>  #ifdef XR_INODE_TRACE
>  	fprintf(stderr, _("processing inode %d/%d\n"), agno, ino);
>  #endif
> -	return process_dinode_int(mp, dino, agno, ino, was_free, dirty, used,
> -				verify_mode, uncertain, ino_discovery,
> -				check_dups, extra_attr_check, isa_dir, parent);
> +	return process_dinode_int(mp, dinop, agno, ino, was_free, dirty, used,
> +			verify_mode, uncertain, ino_discovery,
> +			check_dups, extra_attr_check, isa_dir, parent,
> +			ino_bpp);
>  }
>  
>  /*
> @@ -3038,9 +3050,9 @@ verify_dinode(
>  	const int		ino_discovery = 0;
>  	const int		uncertain = 0;
>  
> -	return process_dinode_int(mp, dino, agno, ino, 0, &dirty, &used,
> -				verify_mode, uncertain, ino_discovery,
> -				check_dups, 0, &isa_dir, &parent);
> +	return process_dinode_int(mp, &dino, agno, ino, 0, &dirty, &used,
> +			verify_mode, uncertain, ino_discovery,
> +			check_dups, 0, &isa_dir, &parent, NULL);
>  }
>  
>  /*
> @@ -3064,7 +3076,7 @@ verify_uncertain_dinode(
>  	const int		ino_discovery = 0;
>  	const int		uncertain = 1;
>  
> -	return process_dinode_int(mp, dino, agno, ino, 0, &dirty, &used,
> +	return process_dinode_int(mp, &dino, agno, ino, 0, &dirty, &used,
>  				verify_mode, uncertain, ino_discovery,
> -				check_dups, 0, &isa_dir, &parent);
> +				check_dups, 0, &isa_dir, &parent, NULL);
>  }
> diff --git a/repair/dinode.h b/repair/dinode.h
> index 333d96d26a2f..92df83da6210 100644
> --- a/repair/dinode.h
> +++ b/repair/dinode.h
> @@ -43,8 +43,8 @@ void
>  update_rootino(xfs_mount_t *mp);
>  
>  int
> -process_dinode(xfs_mount_t *mp,
> -		struct xfs_dinode *dino,
> +process_dinode(struct xfs_mount *mp,
> +		struct xfs_dinode **dinop,
>  		xfs_agnumber_t agno,
>  		xfs_agino_t ino,
>  		int was_free,
> @@ -54,7 +54,8 @@ process_dinode(xfs_mount_t *mp,
>  		int check_dups,
>  		int extra_attr_check,
>  		int *isa_dir,
> -		xfs_ino_t *parent);
> +		xfs_ino_t *parent,
> +		struct xfs_buf **ino_bpp);
>  
>  int
>  verify_dinode(xfs_mount_t *mp,
> 
> 


  reply	other threads:[~2024-03-13 21:58 UTC|newest]

Thread overview: 180+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-03-13  1:41 [PATCHBOMB] xfsprogs: everything headed towards 6.8 Darrick J. Wong
2024-03-13  1:47 ` [PATCHSET 01/10] xfsprogs: convert utilities to use new rt helpers Darrick J. Wong
2024-03-13  1:49   ` [PATCH 01/13] libxfs: fix incorrect porting to 6.7 Darrick J. Wong
2024-03-13 21:58     ` Christoph Hellwig
2024-03-13  1:50   ` [PATCH 02/13] mkfs: fix log sunit rounding when external logs are in use Darrick J. Wong
2024-03-13 21:59     ` Christoph Hellwig
2024-03-14 23:43       ` Darrick J. Wong
2024-03-13  1:50   ` [PATCH 03/13] xfs_repair: fix confusing rt space units in the duplicate detection code Darrick J. Wong
2024-03-13 22:00     ` Christoph Hellwig
2024-03-13  1:50   ` [PATCH 04/13] libxfs: create a helper to compute leftovers of realtime extents Darrick J. Wong
2024-03-13 22:00     ` Christoph Hellwig
2024-03-13  1:50   ` [PATCH 05/13] libxfs: use helpers to convert rt block numbers to rt extent numbers Darrick J. Wong
2024-03-13 22:00     ` Christoph Hellwig
2024-03-13  1:51   ` [PATCH 06/13] xfs_repair: convert utility to use new rt extent helpers and types Darrick J. Wong
2024-03-13 22:01     ` Christoph Hellwig
2024-03-13  1:51   ` [PATCH 07/13] mkfs: " Darrick J. Wong
2024-03-13 22:01     ` Christoph Hellwig
2024-03-13  1:51   ` [PATCH 08/13] xfs_{db,repair}: convert open-coded xfs_rtword_t pointer accesses to helper Darrick J. Wong
2024-03-13 22:01     ` Christoph Hellwig
2024-03-13  1:52   ` [PATCH 09/13] xfs_repair: convert helpers for rtbitmap block/wordcount computations Darrick J. Wong
2024-03-13 22:01     ` Christoph Hellwig
2024-03-13  1:52   ` [PATCH 10/13] xfs_{db,repair}: use accessor functions for bitmap words Darrick J. Wong
2024-03-13 22:02     ` Christoph Hellwig
2024-03-13  1:52   ` [PATCH 11/13] xfs_{db,repair}: use helpers for rtsummary block/wordcount computations Darrick J. Wong
2024-03-13 22:02     ` Christoph Hellwig
2024-03-13  1:52   ` [PATCH 12/13] xfs_{db,repair}: use accessor functions for summary info words Darrick J. Wong
2024-03-13 22:02     ` Christoph Hellwig
2024-03-13  1:53   ` [PATCH 13/13] xfs_{db,repair}: use m_blockwsize instead of sb_blocksize for rt blocks Darrick J. Wong
2024-03-13 22:03     ` Christoph Hellwig
2024-03-13 17:20   ` [PATCHSET 01/10] xfsprogs: convert utilities to use new rt helpers Bill O'Donnell
2024-03-13  1:47 ` [PATCHSET 02/10] libxfs: sync with 6.8 Darrick J. Wong
2024-03-13  1:53   ` [PATCH 01/67] xfs: use xfs_defer_pending objects to recover intent items Darrick J. Wong
2024-03-13  1:53   ` [PATCH 02/67] xfs: recreate work items when recovering " Darrick J. Wong
2024-03-13  1:53   ` [PATCH 03/67] xfs: use xfs_defer_finish_one to finish recovered work items Darrick J. Wong
2024-03-13  1:54   ` [PATCH 04/67] xfs: move ->iop_recover to xfs_defer_op_type Darrick J. Wong
2024-03-13  1:54   ` [PATCH 05/67] xfs: hoist intent done flag setting to ->finish_item callsite Darrick J. Wong
2024-03-13  1:54   ` [PATCH 06/67] xfs: hoist ->create_intent boilerplate to its callsite Darrick J. Wong
2024-03-13  1:54   ` [PATCH 07/67] xfs: use xfs_defer_create_done for the relogging operation Darrick J. Wong
2024-03-13  1:55   ` [PATCH 08/67] xfs: clean out XFS_LI_DIRTY setting boilerplate from ->iop_relog Darrick J. Wong
2024-03-13  1:55   ` [PATCH 09/67] xfs: hoist xfs_trans_add_item calls to defer ops functions Darrick J. Wong
2024-03-13  1:55   ` [PATCH 10/67] xfs: move ->iop_relog to struct xfs_defer_op_type Darrick J. Wong
2024-03-13  1:55   ` [PATCH 11/67] xfs: make rextslog computation consistent with mkfs Darrick J. Wong
2024-03-13  1:56   ` [PATCH 12/67] xfs: fix 32-bit truncation in xfs_compute_rextslog Darrick J. Wong
2024-03-13  1:56   ` [PATCH 13/67] xfs: don't allow overly small or large realtime volumes Darrick J. Wong
2024-03-13  1:56   ` [PATCH 14/67] xfs: elide ->create_done calls for unlogged deferred work Darrick J. Wong
2024-03-13  1:56   ` [PATCH 15/67] xfs: don't append work items to logged xfs_defer_pending objects Darrick J. Wong
2024-03-13  1:57   ` [PATCH 16/67] xfs: allow pausing of pending deferred work items Darrick J. Wong
2024-03-13  1:57   ` [PATCH 17/67] xfs: remove __xfs_free_extent_later Darrick J. Wong
2024-03-13  1:57   ` [PATCH 18/67] xfs: automatic freeing of freshly allocated unwritten space Darrick J. Wong
2024-03-13  1:57   ` [PATCH 19/67] xfs: remove unused fields from struct xbtree_ifakeroot Darrick J. Wong
2024-03-13  1:58   ` [PATCH 20/67] xfs: force small EFIs for reaping btree extents Darrick J. Wong
2024-03-13  1:58   ` [PATCH 21/67] xfs: ensure logflagsp is initialized in xfs_bmap_del_extent_real Darrick J. Wong
2024-03-13  1:58   ` [PATCH 22/67] xfs: update dir3 leaf block metadata after swap Darrick J. Wong
2024-03-13  1:59   ` [PATCH 23/67] xfs: extract xfs_da_buf_copy() helper function Darrick J. Wong
2024-03-13  1:59   ` [PATCH 24/67] xfs: move xfs_ondisk.h to libxfs/ Darrick J. Wong
2024-03-13  1:59   ` [PATCH 25/67] xfs: consolidate the xfs_attr_defer_* helpers Darrick J. Wong
2024-03-13  1:59   ` [PATCH 26/67] xfs: store an ops pointer in struct xfs_defer_pending Darrick J. Wong
2024-03-13  2:00   ` [PATCH 27/67] xfs: pass the defer ops instead of type to xfs_defer_start_recovery Darrick J. Wong
2024-03-13  2:00   ` [PATCH 28/67] xfs: pass the defer ops directly to xfs_defer_add Darrick J. Wong
2024-03-13  2:00   ` [PATCH 29/67] xfs: force all buffers to be written during btree bulk load Darrick J. Wong
2024-03-13  2:00   ` [PATCH 30/67] xfs: set XBF_DONE on newly formatted btree block that are ready for writing Darrick J. Wong
2024-03-13  2:01   ` [PATCH 31/67] xfs: read leaf blocks when computing keys for bulkloading into node blocks Darrick J. Wong
2024-03-13  2:01   ` [PATCH 32/67] xfs: move btree bulkload record initialization to ->get_record implementations Darrick J. Wong
2024-03-13  2:01   ` [PATCH 33/67] xfs: constrain dirty buffers while formatting a staged btree Darrick J. Wong
2024-03-13  2:01   ` [PATCH 34/67] xfs: repair free space btrees Darrick J. Wong
2024-03-13  2:02   ` [PATCH 35/67] xfs: repair inode btrees Darrick J. Wong
2024-03-13  2:02   ` [PATCH 36/67] xfs: repair refcount btrees Darrick J. Wong
2024-03-13  2:02   ` [PATCH 37/67] xfs: dont cast to char * for XFS_DFORK_*PTR macros Darrick J. Wong
2024-03-13  2:02   ` [PATCH 38/67] xfs: set inode sick state flags when we zap either ondisk fork Darrick J. Wong
2024-03-13  2:03   ` [PATCH 39/67] xfs: zap broken inode forks Darrick J. Wong
2024-03-13  2:03   ` [PATCH 40/67] xfs: repair inode fork block mapping data structures Darrick J. Wong
2024-03-13  2:03   ` [PATCH 41/67] xfs: create a ranged query function for refcount btrees Darrick J. Wong
2024-03-13  2:03   ` [PATCH 42/67] xfs: create a new inode fork block unmap helper Darrick J. Wong
2024-03-13  2:04   ` [PATCH 43/67] xfs: improve dquot iteration for scrub Darrick J. Wong
2024-03-13  2:04   ` [PATCH 44/67] xfs: add lock protection when remove perag from radix tree Darrick J. Wong
2024-03-13  2:04   ` [PATCH 45/67] xfs: fix perag leak when growfs fails Darrick J. Wong
2024-03-13  2:05   ` [PATCH 46/67] xfs: remove the xfs_alloc_arg argument to xfs_bmap_btalloc_accounting Darrick J. Wong
2024-03-13  2:05   ` [PATCH 47/67] xfs: also use xfs_bmap_btalloc_accounting for RT allocations Darrick J. Wong
2024-03-13  2:05   ` [PATCH 48/67] xfs: return -ENOSPC from xfs_rtallocate_* Darrick J. Wong
2024-03-13  2:05   ` [PATCH 49/67] xfs: indicate if xfs_bmap_adjacent changed ap->blkno Darrick J. Wong
2024-03-13  2:06   ` [PATCH 50/67] xfs: move xfs_rtget_summary to xfs_rtbitmap.c Darrick J. Wong
2024-03-13  2:06   ` [PATCH 51/67] xfs: split xfs_rtmodify_summary_int Darrick J. Wong
2024-03-13  2:06   ` [PATCH 52/67] xfs: remove rt-wrappers from xfs_format.h Darrick J. Wong
2024-03-13  2:06   ` [PATCH 53/67] xfs: remove XFS_RTMIN/XFS_RTMAX Darrick J. Wong
2024-03-13  2:07   ` [PATCH 54/67] xfs: make if_data a void pointer Darrick J. Wong
2024-03-13  2:07   ` [PATCH 55/67] xfs: return if_data from xfs_idata_realloc Darrick J. Wong
2024-03-13  2:07   ` [PATCH 56/67] xfs: move the xfs_attr_sf_lookup tracepoint Darrick J. Wong
2024-03-13  2:07   ` [PATCH 57/67] xfs: simplify xfs_attr_sf_findname Darrick J. Wong
2024-03-13  2:08   ` [PATCH 58/67] xfs: remove xfs_attr_shortform_lookup Darrick J. Wong
2024-03-13  2:08   ` [PATCH 59/67] xfs: use xfs_attr_sf_findname in xfs_attr_shortform_getvalue Darrick J. Wong
2024-03-13  2:08   ` [PATCH 60/67] xfs: remove struct xfs_attr_shortform Darrick J. Wong
2024-03-13  2:08   ` [PATCH 61/67] xfs: remove xfs_attr_sf_hdr_t Darrick J. Wong
2024-03-13  2:09   ` [PATCH 62/67] xfs: turn the XFS_DA_OP_REPLACE checks in xfs_attr_shortform_addname into asserts Darrick J. Wong
2024-03-13  2:09   ` [PATCH 63/67] xfs: fix a use after free in xfs_defer_finish_recovery Darrick J. Wong
2024-03-13  2:09   ` [PATCH 64/67] xfs: use the op name in trace_xlog_intent_recovery_failed Darrick J. Wong
2024-03-13  2:09   ` [PATCH 65/67] xfs: fix backwards logic in xfs_bmap_alloc_account Darrick J. Wong
2024-03-13  2:10   ` [PATCH 66/67] xfs: reset XFS_ATTR_INCOMPLETE filter on node removal Darrick J. Wong
2024-03-13  2:10   ` [PATCH 67/67] xfs: remove conditional building of rt geometry validator functions Darrick J. Wong
2024-03-13 17:43   ` [PATCHSET 02/10] libxfs: sync with 6.8 Bill O'Donnell
2024-03-13  1:47 ` [PATCHSET 03/10] xfs_repair: faster btree bulkloading Darrick J. Wong
2024-03-13  2:10   ` [PATCH 1/2] xfs_repair: adjust btree bulkloading slack computations to match online repair Darrick J. Wong
2024-03-13 17:48     ` Bill O'Donnell
2024-03-13 22:04     ` Christoph Hellwig
2024-03-13  2:11   ` [PATCH 2/2] xfs_repair: bulk load records into new btree blocks Darrick J. Wong
2024-03-13 17:49     ` Bill O'Donnell
2024-03-13 22:04     ` Christoph Hellwig
2024-03-13  1:48 ` [PATCHSET 04/10] xfsprogs: bug fixes for 6.8 Darrick J. Wong
2024-03-13  2:11   ` [PATCH 1/1] xfs_repair: double-check with shortform attr verifiers Darrick J. Wong
2024-03-13 17:52     ` Bill O'Donnell
2024-03-13 22:05     ` Christoph Hellwig
2024-03-13  1:48 ` [PATCHSET V2 05/10] xfsprogs: fix log sector size detection Darrick J. Wong
2024-03-13  2:11   ` [PATCH 1/5] libxfs: remove the unused fs_topology_t typedef Darrick J. Wong
2024-03-13  2:11   ` [PATCH 2/5] libxfs: refactor the fs_topology structure Darrick J. Wong
2024-03-13  2:12   ` [PATCH 3/5] libxfs: remove the S_ISREG check from blkid_get_topology Darrick J. Wong
2024-03-13  2:12   ` [PATCH 4/5] libxfs: also query log device topology in get_topology Darrick J. Wong
2024-03-13  2:12   ` [PATCH 5/5] mkfs: use a sensible log sector size default Darrick J. Wong
2024-03-13 17:54   ` [PATCHSET V2 05/10] xfsprogs: fix log sector size detection Bill O'Donnell
2024-03-13 22:06   ` Christoph Hellwig
2024-03-13  1:48 ` [PATCHSET 06/10] mkfs: scale shards on ssds Darrick J. Wong
2024-03-13  2:12   ` [PATCH 1/2] mkfs: allow sizing allocation groups for concurrency Darrick J. Wong
2024-03-13  2:13   ` [PATCH 2/2] mkfs: allow sizing internal logs " Darrick J. Wong
2024-03-13 18:17   ` [PATCHSET 06/10] mkfs: scale shards on ssds Bill O'Donnell
2024-03-13  1:48 ` [PATCHSET v29.4 07/10] xfs_scrub: scan metadata files in parallel Darrick J. Wong
2024-03-13  2:13   ` [PATCH 1/3] libfrog: rename XFROG_SCRUB_TYPE_* to XFROG_SCRUB_GROUP_* Darrick J. Wong
2024-03-13  2:13   ` [PATCH 2/3] libfrog: promote XFROG_SCRUB_DESCR_SUMMARY to a scrub type Darrick J. Wong
2024-03-13  2:13   ` [PATCH 3/3] xfs_scrub: scan whole-fs metadata files in parallel Darrick J. Wong
2024-03-13 18:19   ` [PATCHSET v29.4 07/10] xfs_scrub: scan " Bill O'Donnell
2024-03-13  1:49 ` [PATCHSET v29.4 08/10] xfs_repair: rebuild inode fork mappings Darrick J. Wong
2024-03-13  2:14   ` [PATCH 1/3] xfs_repair: push inode buf and dinode pointers all the way to inode fork processing Darrick J. Wong
2024-03-13 21:58     ` Bill O'Donnell [this message]
2024-03-13 22:10     ` Christoph Hellwig
2024-03-13  2:14   ` [PATCH 2/3] xfs_repair: sync bulkload data structures with kernel newbt code Darrick J. Wong
2024-03-13 22:11     ` Christoph Hellwig
2024-03-14 16:35     ` Bill O'Donnell
2024-03-13  2:14   ` [PATCH 3/3] xfs_repair: rebuild block mappings from rmapbt data Darrick J. Wong
2024-03-14  1:59     ` Christoph Hellwig
2024-03-14 23:56       ` Darrick J. Wong
2024-03-17 21:10         ` Christoph Hellwig
2024-03-14 17:13     ` Bill O'Donnell
2024-03-18 18:27     ` [PATCH v24.5.1 " Darrick J. Wong
2024-03-13  1:49 ` [PATCHSET 09/10] xfs_repair: support more than 4 billion records Darrick J. Wong
2024-03-13  2:14   ` [PATCH 1/8] xfs_db: add a bmbt inflation command Darrick J. Wong
2024-03-14  2:01     ` Christoph Hellwig
2024-03-14 23:57       ` Darrick J. Wong
2024-03-18 18:32     ` [PATCH v24.5.1 " Darrick J. Wong
2024-03-13  2:15   ` [PATCH 2/8] xfs_repair: slab and bag structs need to track more than 2^32 items Darrick J. Wong
2024-03-14  2:02     ` Christoph Hellwig
2024-03-13  2:15   ` [PATCH 3/8] xfs_repair: support more than 2^32 rmapbt records per AG Darrick J. Wong
2024-03-14  2:02     ` Christoph Hellwig
2024-03-13  2:15   ` [PATCH 4/8] xfs_repair: support more than 2^32 owners per physical block Darrick J. Wong
2024-03-14  2:03     ` Christoph Hellwig
2024-03-14 23:59       ` Darrick J. Wong
2024-03-18 18:32     ` [PATCH v24.5.1 " Darrick J. Wong
2024-03-13  2:15   ` [PATCH 5/8] xfs_repair: clean up lock resources Darrick J. Wong
2024-03-14  2:03     ` Christoph Hellwig
2024-03-13  2:16   ` [PATCH 6/8] xfs_repair: constrain attr fork extent count Darrick J. Wong
2024-03-14  2:03     ` Christoph Hellwig
2024-03-13  2:16   ` [PATCH 7/8] xfs_repair: don't create block maps for data files Darrick J. Wong
2024-03-14  2:05     ` Christoph Hellwig
2024-03-15  0:02       ` Darrick J. Wong
2024-03-17 21:11         ` Christoph Hellwig
2024-03-18 18:33     ` [PATCH v24.5.1 " Darrick J. Wong
2024-03-13  2:16   ` [PATCH 8/8] xfs_repair: support more than INT_MAX block maps Darrick J. Wong
2024-03-14  2:06     ` Christoph Hellwig
2024-03-15  0:03       ` Darrick J. Wong
2024-03-13  1:49 ` [PATCHSET v29.4 10/10] libxfs: prepare to sync with 6.9 Darrick J. Wong
2024-03-13  2:17   ` [PATCH 1/3] libxfs: actually set m_fsname Darrick J. Wong
2024-03-14  2:07     ` Christoph Hellwig
2024-03-13  2:17   ` [PATCH 2/3] libxfs: clean up xfs_da_unmount usage Darrick J. Wong
2024-03-14  2:08     ` Christoph Hellwig
2024-03-13  2:17   ` [PATCH 3/3] libfrog: create a new scrub group for things requiring full inode scans Darrick J. Wong
2024-03-14  2:08     ` Christoph Hellwig
2024-03-18 21:30 ` [PATCHSET v29.4] xfsprogs: various bug fixes for 6.8 Darrick J. Wong
2024-03-18 21:30   ` [PATCH 1/4] xfs_db: fix alignment checks in getbitval Darrick J. Wong
2024-03-18 21:30   ` [PATCH 2/4] xfs_scrub: fix threadcount estimates for phase 6 Darrick J. Wong
2024-03-18 21:30   ` [PATCH 3/4] xfs_scrub: don't fail while reporting media scan errors Darrick J. Wong
2024-03-18 21:31   ` [PATCH 4/4] xfs_io: add linux madvise advice codes Darrick J. Wong
  -- strict thread matches above, loose matches on Subject: below --
2024-04-17 21:17 [PATCHSET v30.3 10/11] xfs_repair: rebuild inode fork mappings Darrick J. Wong
2024-04-17 21:43 ` [PATCH 1/3] xfs_repair: push inode buf and dinode pointers all the way to inode fork processing Darrick J. Wong
2024-03-26  2:56 [PATCHSET v29.4 08/18] xfs_repair: rebuild inode fork mappings Darrick J. Wong
2024-03-26  3:25 ` [PATCH 1/3] xfs_repair: push inode buf and dinode pointers all the way to inode fork processing Darrick J. Wong
2023-12-31 19:41 [PATCHSET v29.0 06/40] xfs_repair: rebuild inode fork mappings Darrick J. Wong
2023-12-31 22:07 ` [PATCH 1/3] xfs_repair: push inode buf and dinode pointers all the way to inode fork processing Darrick J. Wong

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=ZfIhlo3VrvnAfHc6@redhat.com \
    --to=bodonnel@redhat.com \
    --cc=cem@kernel.org \
    --cc=djwong@kernel.org \
    --cc=linux-xfs@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).