All of lore.kernel.org
 help / color / mirror / Atom feed
From: Chandan Babu R <chandanrlinux@gmail.com>
To: "Darrick J. Wong" <darrick.wong@oracle.com>
Cc: linux-xfs@vger.kernel.org
Subject: Re: [PATCH 23/28] xfs: refactor intent item RECOVERED flag into the log item
Date: Wed, 06 May 2020 10:15:56 +0530	[thread overview]
Message-ID: <1975358.PeGXr0G4sl@garuda> (raw)
In-Reply-To: <158864117994.182683.5443984828546312981.stgit@magnolia>

On Tuesday 5 May 2020 6:42:59 AM IST Darrick J. Wong wrote:
> From: Darrick J. Wong <darrick.wong@oracle.com>
> 
> Rename XFS_{EFI,BUI,RUI,CUI}_RECOVERED to XFS_LI_RECOVERED so that we
> track recovery status in the log item, then get rid of the now unused
> flags fields in each of those log item types.
>

The functionality is the same as was before applying this patch.

Reviewed-by: Chandan Babu R <chandanrlinux@gmail.com>

> Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
> ---
>  fs/xfs/xfs_bmap_item.c     |   10 +++++-----
>  fs/xfs/xfs_bmap_item.h     |    6 ------
>  fs/xfs/xfs_extfree_item.c  |    8 ++++----
>  fs/xfs/xfs_extfree_item.h  |    6 ------
>  fs/xfs/xfs_refcount_item.c |    8 ++++----
>  fs/xfs/xfs_refcount_item.h |    6 ------
>  fs/xfs/xfs_rmap_item.c     |    8 ++++----
>  fs/xfs/xfs_rmap_item.h     |    6 ------
>  fs/xfs/xfs_trans.h         |    4 +++-
>  9 files changed, 20 insertions(+), 42 deletions(-)
> 
> 
> diff --git a/fs/xfs/xfs_bmap_item.c b/fs/xfs/xfs_bmap_item.c
> index 090dc1c53c92..8dd157fc44fa 100644
> --- a/fs/xfs/xfs_bmap_item.c
> +++ b/fs/xfs/xfs_bmap_item.c
> @@ -441,11 +441,11 @@ xfs_bui_recover(
>  	struct xfs_bmbt_irec		irec;
>  	struct xfs_mount		*mp = parent_tp->t_mountp;
>  
> -	ASSERT(!test_bit(XFS_BUI_RECOVERED, &buip->bui_flags));
> +	ASSERT(!test_bit(XFS_LI_RECOVERED, &buip->bui_item.li_flags));
>  
>  	/* Only one mapping operation per BUI... */
>  	if (buip->bui_format.bui_nextents != XFS_BUI_MAX_FAST_EXTENTS) {
> -		set_bit(XFS_BUI_RECOVERED, &buip->bui_flags);
> +		set_bit(XFS_LI_RECOVERED, &buip->bui_item.li_flags);
>  		xfs_bui_release(buip);
>  		return -EFSCORRUPTED;
>  	}
> @@ -479,7 +479,7 @@ xfs_bui_recover(
>  		 * This will pull the BUI from the AIL and
>  		 * free the memory associated with it.
>  		 */
> -		set_bit(XFS_BUI_RECOVERED, &buip->bui_flags);
> +		set_bit(XFS_LI_RECOVERED, &buip->bui_item.li_flags);
>  		xfs_bui_release(buip);
>  		return -EFSCORRUPTED;
>  	}
> @@ -537,7 +537,7 @@ xfs_bui_recover(
>  		xfs_bmap_unmap_extent(tp, ip, &irec);
>  	}
>  
> -	set_bit(XFS_BUI_RECOVERED, &buip->bui_flags);
> +	set_bit(XFS_LI_RECOVERED, &buip->bui_item.li_flags);
>  	xfs_defer_move(parent_tp, tp);
>  	error = xfs_trans_commit(tp);
>  	xfs_iunlock(ip, XFS_ILOCK_EXCL);
> @@ -568,7 +568,7 @@ xfs_bui_item_recover(
>  	/*
>  	 * Skip BUIs that we've already processed.
>  	 */
> -	if (test_bit(XFS_BUI_RECOVERED, &buip->bui_flags))
> +	if (test_bit(XFS_LI_RECOVERED, &buip->bui_item.li_flags))
>  		return 0;
>  
>  	spin_unlock(&ailp->ail_lock);
> diff --git a/fs/xfs/xfs_bmap_item.h b/fs/xfs/xfs_bmap_item.h
> index 44d06e62f8f9..b9be62f8bd52 100644
> --- a/fs/xfs/xfs_bmap_item.h
> +++ b/fs/xfs/xfs_bmap_item.h
> @@ -32,11 +32,6 @@ struct kmem_zone;
>   */
>  #define	XFS_BUI_MAX_FAST_EXTENTS	1
>  
> -/*
> - * Define BUI flag bits. Manipulated by set/clear/test_bit operators.
> - */
> -#define	XFS_BUI_RECOVERED		1
> -
>  /*
>   * This is the "bmap update intent" log item.  It is used to log the fact that
>   * some reverse mappings need to change.  It is used in conjunction with the
> @@ -49,7 +44,6 @@ struct xfs_bui_log_item {
>  	struct xfs_log_item		bui_item;
>  	atomic_t			bui_refcount;
>  	atomic_t			bui_next_extent;
> -	unsigned long			bui_flags;	/* misc flags */
>  	struct xfs_bui_log_format	bui_format;
>  };
>  
> diff --git a/fs/xfs/xfs_extfree_item.c b/fs/xfs/xfs_extfree_item.c
> index dc6ebb5fb8d3..635c99fdda85 100644
> --- a/fs/xfs/xfs_extfree_item.c
> +++ b/fs/xfs/xfs_extfree_item.c
> @@ -592,7 +592,7 @@ xfs_efi_recover(
>  	xfs_extent_t		*extp;
>  	xfs_fsblock_t		startblock_fsb;
>  
> -	ASSERT(!test_bit(XFS_EFI_RECOVERED, &efip->efi_flags));
> +	ASSERT(!test_bit(XFS_LI_RECOVERED, &efip->efi_item.li_flags));
>  
>  	/*
>  	 * First check the validity of the extents described by the
> @@ -611,7 +611,7 @@ xfs_efi_recover(
>  			 * This will pull the EFI from the AIL and
>  			 * free the memory associated with it.
>  			 */
> -			set_bit(XFS_EFI_RECOVERED, &efip->efi_flags);
> +			set_bit(XFS_LI_RECOVERED, &efip->efi_item.li_flags);
>  			xfs_efi_release(efip);
>  			return -EFSCORRUPTED;
>  		}
> @@ -632,7 +632,7 @@ xfs_efi_recover(
>  
>  	}
>  
> -	set_bit(XFS_EFI_RECOVERED, &efip->efi_flags);
> +	set_bit(XFS_LI_RECOVERED, &efip->efi_item.li_flags);
>  	error = xfs_trans_commit(tp);
>  	return error;
>  
> @@ -655,7 +655,7 @@ xfs_efi_item_recover(
>  	 * Skip EFIs that we've already processed.
>  	 */
>  	efip = container_of(lip, struct xfs_efi_log_item, efi_item);
> -	if (test_bit(XFS_EFI_RECOVERED, &efip->efi_flags))
> +	if (test_bit(XFS_LI_RECOVERED, &efip->efi_item.li_flags))
>  		return 0;
>  
>  	spin_unlock(&ailp->ail_lock);
> diff --git a/fs/xfs/xfs_extfree_item.h b/fs/xfs/xfs_extfree_item.h
> index 4b2c2c5c5985..cd2860c875bf 100644
> --- a/fs/xfs/xfs_extfree_item.h
> +++ b/fs/xfs/xfs_extfree_item.h
> @@ -16,11 +16,6 @@ struct kmem_zone;
>   */
>  #define	XFS_EFI_MAX_FAST_EXTENTS	16
>  
> -/*
> - * Define EFI flag bits. Manipulated by set/clear/test_bit operators.
> - */
> -#define	XFS_EFI_RECOVERED	1
> -
>  /*
>   * This is the "extent free intention" log item.  It is used to log the fact
>   * that some extents need to be free.  It is used in conjunction with the
> @@ -54,7 +49,6 @@ struct xfs_efi_log_item {
>  	struct xfs_log_item	efi_item;
>  	atomic_t		efi_refcount;
>  	atomic_t		efi_next_extent;
> -	unsigned long		efi_flags;	/* misc flags */
>  	xfs_efi_log_format_t	efi_format;
>  };
>  
> diff --git a/fs/xfs/xfs_refcount_item.c b/fs/xfs/xfs_refcount_item.c
> index fdc18576a023..4b242b3b33a3 100644
> --- a/fs/xfs/xfs_refcount_item.c
> +++ b/fs/xfs/xfs_refcount_item.c
> @@ -441,7 +441,7 @@ xfs_cui_recover(
>  	bool				requeue_only = false;
>  	struct xfs_mount		*mp = parent_tp->t_mountp;
>  
> -	ASSERT(!test_bit(XFS_CUI_RECOVERED, &cuip->cui_flags));
> +	ASSERT(!test_bit(XFS_LI_RECOVERED, &cuip->cui_item.li_flags));
>  
>  	/*
>  	 * First check the validity of the extents described by the
> @@ -472,7 +472,7 @@ xfs_cui_recover(
>  			 * This will pull the CUI from the AIL and
>  			 * free the memory associated with it.
>  			 */
> -			set_bit(XFS_CUI_RECOVERED, &cuip->cui_flags);
> +			set_bit(XFS_LI_RECOVERED, &cuip->cui_item.li_flags);
>  			xfs_cui_release(cuip);
>  			return -EFSCORRUPTED;
>  		}
> @@ -556,7 +556,7 @@ xfs_cui_recover(
>  	}
>  
>  	xfs_refcount_finish_one_cleanup(tp, rcur, error);
> -	set_bit(XFS_CUI_RECOVERED, &cuip->cui_flags);
> +	set_bit(XFS_LI_RECOVERED, &cuip->cui_item.li_flags);
>  	xfs_defer_move(parent_tp, tp);
>  	error = xfs_trans_commit(tp);
>  	return error;
> @@ -581,7 +581,7 @@ xfs_cui_item_recover(
>  	/*
>  	 * Skip CUIs that we've already processed.
>  	 */
> -	if (test_bit(XFS_CUI_RECOVERED, &cuip->cui_flags))
> +	if (test_bit(XFS_LI_RECOVERED, &cuip->cui_item.li_flags))
>  		return 0;
>  
>  	spin_unlock(&ailp->ail_lock);
> diff --git a/fs/xfs/xfs_refcount_item.h b/fs/xfs/xfs_refcount_item.h
> index cfaa857673a6..f4f2e836540b 100644
> --- a/fs/xfs/xfs_refcount_item.h
> +++ b/fs/xfs/xfs_refcount_item.h
> @@ -32,11 +32,6 @@ struct kmem_zone;
>   */
>  #define	XFS_CUI_MAX_FAST_EXTENTS	16
>  
> -/*
> - * Define CUI flag bits. Manipulated by set/clear/test_bit operators.
> - */
> -#define	XFS_CUI_RECOVERED		1
> -
>  /*
>   * This is the "refcount update intent" log item.  It is used to log
>   * the fact that some reverse mappings need to change.  It is used in
> @@ -51,7 +46,6 @@ struct xfs_cui_log_item {
>  	struct xfs_log_item		cui_item;
>  	atomic_t			cui_refcount;
>  	atomic_t			cui_next_extent;
> -	unsigned long			cui_flags;	/* misc flags */
>  	struct xfs_cui_log_format	cui_format;
>  };
>  
> diff --git a/fs/xfs/xfs_rmap_item.c b/fs/xfs/xfs_rmap_item.c
> index f9cd3ff18736..625eaf954d74 100644
> --- a/fs/xfs/xfs_rmap_item.c
> +++ b/fs/xfs/xfs_rmap_item.c
> @@ -480,7 +480,7 @@ xfs_rui_recover(
>  	struct xfs_trans		*tp;
>  	struct xfs_btree_cur		*rcur = NULL;
>  
> -	ASSERT(!test_bit(XFS_RUI_RECOVERED, &ruip->rui_flags));
> +	ASSERT(!test_bit(XFS_LI_RECOVERED, &ruip->rui_item.li_flags));
>  
>  	/*
>  	 * First check the validity of the extents described by the
> @@ -515,7 +515,7 @@ xfs_rui_recover(
>  			 * This will pull the RUI from the AIL and
>  			 * free the memory associated with it.
>  			 */
> -			set_bit(XFS_RUI_RECOVERED, &ruip->rui_flags);
> +			set_bit(XFS_LI_RECOVERED, &ruip->rui_item.li_flags);
>  			xfs_rui_release(ruip);
>  			return -EFSCORRUPTED;
>  		}
> @@ -573,7 +573,7 @@ xfs_rui_recover(
>  	}
>  
>  	xfs_rmap_finish_one_cleanup(tp, rcur, error);
> -	set_bit(XFS_RUI_RECOVERED, &ruip->rui_flags);
> +	set_bit(XFS_LI_RECOVERED, &ruip->rui_item.li_flags);
>  	error = xfs_trans_commit(tp);
>  	return error;
>  
> @@ -596,7 +596,7 @@ xfs_rui_item_recover(
>  	/*
>  	 * Skip RUIs that we've already processed.
>  	 */
> -	if (test_bit(XFS_RUI_RECOVERED, &ruip->rui_flags))
> +	if (test_bit(XFS_LI_RECOVERED, &ruip->rui_item.li_flags))
>  		return 0;
>  
>  	spin_unlock(&ailp->ail_lock);
> diff --git a/fs/xfs/xfs_rmap_item.h b/fs/xfs/xfs_rmap_item.h
> index 48a77a6f5c94..31e6cdfff71f 100644
> --- a/fs/xfs/xfs_rmap_item.h
> +++ b/fs/xfs/xfs_rmap_item.h
> @@ -35,11 +35,6 @@ struct kmem_zone;
>   */
>  #define	XFS_RUI_MAX_FAST_EXTENTS	16
>  
> -/*
> - * Define RUI flag bits. Manipulated by set/clear/test_bit operators.
> - */
> -#define	XFS_RUI_RECOVERED		1
> -
>  /*
>   * This is the "rmap update intent" log item.  It is used to log the fact that
>   * some reverse mappings need to change.  It is used in conjunction with the
> @@ -52,7 +47,6 @@ struct xfs_rui_log_item {
>  	struct xfs_log_item		rui_item;
>  	atomic_t			rui_refcount;
>  	atomic_t			rui_next_extent;
> -	unsigned long			rui_flags;	/* misc flags */
>  	struct xfs_rui_log_format	rui_format;
>  };
>  
> diff --git a/fs/xfs/xfs_trans.h b/fs/xfs/xfs_trans.h
> index 3e8808bb07c5..8308bf6d7e40 100644
> --- a/fs/xfs/xfs_trans.h
> +++ b/fs/xfs/xfs_trans.h
> @@ -59,12 +59,14 @@ struct xfs_log_item {
>  #define	XFS_LI_ABORTED	1
>  #define	XFS_LI_FAILED	2
>  #define	XFS_LI_DIRTY	3	/* log item dirty in transaction */
> +#define	XFS_LI_RECOVERED 4	/* log intent item has been recovered */
>  
>  #define XFS_LI_FLAGS \
>  	{ (1 << XFS_LI_IN_AIL),		"IN_AIL" }, \
>  	{ (1 << XFS_LI_ABORTED),	"ABORTED" }, \
>  	{ (1 << XFS_LI_FAILED),		"FAILED" }, \
> -	{ (1 << XFS_LI_DIRTY),		"DIRTY" }
> +	{ (1 << XFS_LI_DIRTY),		"DIRTY" }, \
> +	{ (1 << XFS_LI_RECOVERED),	"RECOVERED" }
>  
>  struct xfs_item_ops {
>  	unsigned flags;
> 
> 


-- 
chandan




  reply	other threads:[~2020-05-06  4:46 UTC|newest]

Thread overview: 94+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-05-05  1:10 [PATCH v3 00/28] xfs: refactor log recovery Darrick J. Wong
2020-05-05  1:10 ` [PATCH 01/28] xfs: convert xfs_log_recover_item_t to struct xfs_log_recover_item Darrick J. Wong
2020-05-05  3:33   ` Chandan Babu R
2020-05-06 14:59   ` Christoph Hellwig
2020-05-05  1:10 ` [PATCH 02/28] xfs: refactor log recovery item sorting into a generic dispatch structure Darrick J. Wong
2020-05-05  4:11   ` Chandan Babu R
2020-05-06 15:03   ` Christoph Hellwig
2020-05-06 18:36     ` Darrick J. Wong
2020-05-05  1:10 ` [PATCH 03/28] xfs: refactor log recovery item dispatch for pass2 readhead functions Darrick J. Wong
2020-05-05  4:32   ` Chandan Babu R
2020-05-06 15:04   ` Christoph Hellwig
2020-05-05  1:10 ` [PATCH 04/28] xfs: refactor log recovery item dispatch for pass1 commit functions Darrick J. Wong
2020-05-05  4:40   ` Chandan Babu R
2020-05-06 15:07   ` Christoph Hellwig
2020-05-05  1:11 ` [PATCH 05/28] xfs: refactor log recovery buffer item dispatch for pass2 " Darrick J. Wong
2020-05-05  5:03   ` Chandan Babu R
2020-05-06 15:09   ` Christoph Hellwig
2020-05-05  1:11 ` [PATCH 06/28] xfs: refactor log recovery inode " Darrick J. Wong
2020-05-05  5:09   ` Chandan Babu R
2020-05-06 15:10   ` Christoph Hellwig
2020-05-05  1:11 ` [PATCH 07/28] xfs: refactor log recovery dquot " Darrick J. Wong
2020-05-05  5:13   ` Chandan Babu R
2020-05-06 15:11   ` Christoph Hellwig
2020-05-05  1:11 ` [PATCH 08/28] xfs: refactor log recovery icreate " Darrick J. Wong
2020-05-05  6:10   ` Chandan Babu R
2020-05-06 15:11   ` Christoph Hellwig
2020-05-05  1:11 ` [PATCH 09/28] xfs: refactor log recovery EFI " Darrick J. Wong
2020-05-05  6:46   ` Chandan Babu R
2020-05-06 15:12   ` Christoph Hellwig
2020-05-05  1:11 ` [PATCH 10/28] xfs: refactor log recovery RUI " Darrick J. Wong
2020-05-05  7:02   ` Chandan Babu R
2020-05-06 15:12   ` Christoph Hellwig
2020-05-06 15:13   ` Christoph Hellwig
2020-05-05  1:11 ` [PATCH 11/28] xfs: refactor log recovery CUI " Darrick J. Wong
2020-05-05  7:06   ` Chandan Babu R
2020-05-06 15:13   ` Christoph Hellwig
2020-05-05  1:11 ` [PATCH 12/28] xfs: refactor log recovery BUI " Darrick J. Wong
2020-05-05  7:14   ` Chandan Babu R
2020-05-06 15:14   ` Christoph Hellwig
2020-05-05  1:11 ` [PATCH 13/28] xfs: remove log recovery quotaoff " Darrick J. Wong
2020-05-05  7:32   ` Chandan Babu R
2020-05-06 15:16   ` Christoph Hellwig
2020-05-06 16:48     ` Darrick J. Wong
2020-05-05  1:12 ` [PATCH 14/28] xfs: refactor recovered EFI log item playback Darrick J. Wong
2020-05-05  9:03   ` Chandan Babu R
2020-05-06 15:18   ` Christoph Hellwig
2020-05-06 18:59     ` Darrick J. Wong
2020-05-05  1:12 ` [PATCH 15/28] xfs: refactor recovered RUI " Darrick J. Wong
2020-05-05  9:10   ` Chandan Babu R
2020-05-06 15:18   ` Christoph Hellwig
2020-05-06 15:19   ` Christoph Hellwig
2020-05-05  1:12 ` [PATCH 16/28] xfs: refactor recovered CUI " Darrick J. Wong
2020-05-05  9:29   ` Chandan Babu R
2020-05-05  9:29     ` Chandan Babu R
2020-05-06 15:19   ` Christoph Hellwig
2020-05-05  1:12 ` [PATCH 17/28] xfs: refactor recovered BUI " Darrick J. Wong
2020-05-05  9:49   ` Chandan Babu R
2020-05-06 15:21   ` Christoph Hellwig
2020-05-05  1:12 ` [PATCH 18/28] xfs: refactor unlinked inode recovery Darrick J. Wong
2020-05-05 13:05   ` Chandan Babu R
2020-05-06 15:26   ` Christoph Hellwig
2020-05-06 16:51     ` Darrick J. Wong
2020-05-05  1:12 ` [PATCH 19/28] xfs: refactor xlog_recover_process_unlinked Darrick J. Wong
2020-05-05 13:19   ` Chandan Babu R
2020-05-05 13:30     ` Chandan Babu R
2020-05-06 19:11     ` Darrick J. Wong
2020-05-06 15:27   ` Christoph Hellwig
2020-05-05  1:12 ` [PATCH 20/28] xfs: report iunlink recovery failure upwards Darrick J. Wong
2020-05-05 13:43   ` Chandan Babu R
2020-05-06 15:27   ` Christoph Hellwig
2020-05-05  1:12 ` [PATCH 21/28] xfs: refactor releasing finished intents during log recovery Darrick J. Wong
2020-05-06  4:06   ` Chandan Babu R
2020-05-06 15:29   ` Christoph Hellwig
2020-05-05  1:12 ` [PATCH 22/28] xfs: refactor adding recovered intent items to the log Darrick J. Wong
2020-05-06 15:31   ` Christoph Hellwig
2020-05-06 19:28     ` Darrick J. Wong
2020-05-05  1:12 ` [PATCH 23/28] xfs: refactor intent item RECOVERED flag into the log item Darrick J. Wong
2020-05-06  4:45   ` Chandan Babu R [this message]
2020-05-06 15:32   ` Christoph Hellwig
2020-05-05  1:13 ` [PATCH 24/28] xfs: refactor intent item iop_recover calls Darrick J. Wong
2020-05-06  5:14   ` Chandan Babu R
2020-05-06 15:34   ` Christoph Hellwig
2020-05-05  1:13 ` [PATCH 25/28] xfs: hoist setting of XFS_LI_RECOVERED to caller Darrick J. Wong
2020-05-06  5:34   ` Chandan Babu R
2020-05-06 15:35   ` Christoph Hellwig
2020-05-05  1:13 ` [PATCH 26/28] xfs: move log recovery buffer cancellation code to xfs_buf_item_recover.c Darrick J. Wong
2020-05-06  6:42   ` Chandan Babu R
2020-05-06 15:35   ` Christoph Hellwig
2020-05-05  1:13 ` [PATCH 27/28] xfs: remove unnecessary includes from xfs_log_recover.c Darrick J. Wong
2020-05-06  7:21   ` Chandan Babu R
2020-05-05  1:13 ` [PATCH 28/28] xfs: use parallel processing to clear unlinked metadata Darrick J. Wong
2020-05-06  7:57   ` Chandan Babu R
2020-05-06 15:36   ` Christoph Hellwig
2020-05-06 16:54     ` 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=1975358.PeGXr0G4sl@garuda \
    --to=chandanrlinux@gmail.com \
    --cc=darrick.wong@oracle.com \
    --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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.