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
next prev parent 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.