From: "Darrick J. Wong" <djwong@kernel.org>
To: Dave Chinner <david@fromorbit.com>
Cc: linux-xfs@vger.kernel.org
Subject: Re: [PATCH 5/7] xfs: log items should have a xlog pointer, not a mount
Date: Tue, 15 Mar 2022 12:37:02 -0700 [thread overview]
Message-ID: <20220315193702.GP8224@magnolia> (raw)
In-Reply-To: <20220315064241.3133751-6-david@fromorbit.com>
On Tue, Mar 15, 2022 at 05:42:39PM +1100, Dave Chinner wrote:
> From: Dave Chinner <dchinner@redhat.com>
>
> Log items belong to the log, not the xfs_mount. Convert the mount
> pointer in the log item to a xlog pointer in preparation for
> upcoming log centric changes to the log items.
>
> Signed-off-by: Dave Chinner <dchinner@redhat.com>
Straightforward conversion,
Reviewed-by: Darrick J. Wong <djwong@kernel.org>
--D
> ---
> fs/xfs/xfs_bmap_item.c | 2 +-
> fs/xfs/xfs_buf_item.c | 5 +++--
> fs/xfs/xfs_extfree_item.c | 2 +-
> fs/xfs/xfs_log.c | 2 +-
> fs/xfs/xfs_log_cil.c | 2 +-
> fs/xfs/xfs_refcount_item.c | 2 +-
> fs/xfs/xfs_rmap_item.c | 2 +-
> fs/xfs/xfs_trace.h | 4 ++--
> fs/xfs/xfs_trans.c | 2 +-
> fs/xfs/xfs_trans.h | 3 ++-
> 10 files changed, 14 insertions(+), 12 deletions(-)
>
> diff --git a/fs/xfs/xfs_bmap_item.c b/fs/xfs/xfs_bmap_item.c
> index fa710067aac2..65ac261b3b28 100644
> --- a/fs/xfs/xfs_bmap_item.c
> +++ b/fs/xfs/xfs_bmap_item.c
> @@ -476,7 +476,7 @@ xfs_bui_item_recover(
> struct xfs_bui_log_item *buip = BUI_ITEM(lip);
> struct xfs_trans *tp;
> struct xfs_inode *ip = NULL;
> - struct xfs_mount *mp = lip->li_mountp;
> + struct xfs_mount *mp = lip->li_log->l_mp;
> struct xfs_map_extent *bmap;
> struct xfs_bud_log_item *budp;
> xfs_filblks_t count;
> diff --git a/fs/xfs/xfs_buf_item.c b/fs/xfs/xfs_buf_item.c
> index a7a8e4528881..522d450a94b1 100644
> --- a/fs/xfs/xfs_buf_item.c
> +++ b/fs/xfs/xfs_buf_item.c
> @@ -21,6 +21,7 @@
> #include "xfs_dquot.h"
> #include "xfs_trace.h"
> #include "xfs_log.h"
> +#include "xfs_log_priv.h"
>
>
> struct kmem_cache *xfs_buf_item_cache;
> @@ -428,7 +429,7 @@ xfs_buf_item_format(
> * occurs during recovery.
> */
> if (bip->bli_flags & XFS_BLI_INODE_BUF) {
> - if (xfs_has_v3inodes(lip->li_mountp) ||
> + if (xfs_has_v3inodes(lip->li_log->l_mp) ||
> !((bip->bli_flags & XFS_BLI_INODE_ALLOC_BUF) &&
> xfs_log_item_in_current_chkpt(lip)))
> bip->__bli_format.blf_flags |= XFS_BLF_INODE_BUF;
> @@ -616,7 +617,7 @@ xfs_buf_item_put(
> * that case, the bli is freed on buffer writeback completion.
> */
> aborted = test_bit(XFS_LI_ABORTED, &lip->li_flags) ||
> - xfs_is_shutdown(lip->li_mountp);
> + xlog_is_shutdown(lip->li_log);
> dirty = bip->bli_flags & XFS_BLI_DIRTY;
> if (dirty && !aborted)
> return false;
> diff --git a/fs/xfs/xfs_extfree_item.c b/fs/xfs/xfs_extfree_item.c
> index 36eeac9413f5..893a7dd15cbb 100644
> --- a/fs/xfs/xfs_extfree_item.c
> +++ b/fs/xfs/xfs_extfree_item.c
> @@ -615,7 +615,7 @@ xfs_efi_item_recover(
> struct list_head *capture_list)
> {
> struct xfs_efi_log_item *efip = EFI_ITEM(lip);
> - struct xfs_mount *mp = lip->li_mountp;
> + struct xfs_mount *mp = lip->li_log->l_mp;
> struct xfs_efd_log_item *efdp;
> struct xfs_trans *tp;
> struct xfs_extent *extp;
> diff --git a/fs/xfs/xfs_log.c b/fs/xfs/xfs_log.c
> index b0e05fa902d4..5c4ef45f42d2 100644
> --- a/fs/xfs/xfs_log.c
> +++ b/fs/xfs/xfs_log.c
> @@ -1136,7 +1136,7 @@ xfs_log_item_init(
> int type,
> const struct xfs_item_ops *ops)
> {
> - item->li_mountp = mp;
> + item->li_log = mp->m_log;
> item->li_ailp = mp->m_ail;
> item->li_type = type;
> item->li_ops = ops;
> diff --git a/fs/xfs/xfs_log_cil.c b/fs/xfs/xfs_log_cil.c
> index 48b16a5feb27..e9b80036268a 100644
> --- a/fs/xfs/xfs_log_cil.c
> +++ b/fs/xfs/xfs_log_cil.c
> @@ -76,7 +76,7 @@ bool
> xfs_log_item_in_current_chkpt(
> struct xfs_log_item *lip)
> {
> - return xlog_item_in_current_chkpt(lip->li_mountp->m_log->l_cilp, lip);
> + return xlog_item_in_current_chkpt(lip->li_log->l_cilp, lip);
> }
>
> /*
> diff --git a/fs/xfs/xfs_refcount_item.c b/fs/xfs/xfs_refcount_item.c
> index d4632f2ceb89..1b82b818f515 100644
> --- a/fs/xfs/xfs_refcount_item.c
> +++ b/fs/xfs/xfs_refcount_item.c
> @@ -468,7 +468,7 @@ xfs_cui_item_recover(
> struct xfs_cud_log_item *cudp;
> struct xfs_trans *tp;
> struct xfs_btree_cur *rcur = NULL;
> - struct xfs_mount *mp = lip->li_mountp;
> + struct xfs_mount *mp = lip->li_log->l_mp;
> xfs_fsblock_t new_fsb;
> xfs_extlen_t new_len;
> unsigned int refc_type;
> diff --git a/fs/xfs/xfs_rmap_item.c b/fs/xfs/xfs_rmap_item.c
> index cb0490919b2c..546bd824cdf7 100644
> --- a/fs/xfs/xfs_rmap_item.c
> +++ b/fs/xfs/xfs_rmap_item.c
> @@ -523,7 +523,7 @@ xfs_rui_item_recover(
> struct xfs_rud_log_item *rudp;
> struct xfs_trans *tp;
> struct xfs_btree_cur *rcur = NULL;
> - struct xfs_mount *mp = lip->li_mountp;
> + struct xfs_mount *mp = lip->li_log->l_mp;
> enum xfs_rmap_intent_type type;
> xfs_exntst_t state;
> int i;
> diff --git a/fs/xfs/xfs_trace.h b/fs/xfs/xfs_trace.h
> index 585bd9853b6b..cc69b7c066e8 100644
> --- a/fs/xfs/xfs_trace.h
> +++ b/fs/xfs/xfs_trace.h
> @@ -1308,7 +1308,7 @@ DECLARE_EVENT_CLASS(xfs_log_item_class,
> __field(xfs_lsn_t, lsn)
> ),
> TP_fast_assign(
> - __entry->dev = lip->li_mountp->m_super->s_dev;
> + __entry->dev = lip->li_log->l_mp->m_super->s_dev;
> __entry->lip = lip;
> __entry->type = lip->li_type;
> __entry->flags = lip->li_flags;
> @@ -1364,7 +1364,7 @@ DECLARE_EVENT_CLASS(xfs_ail_class,
> __field(xfs_lsn_t, new_lsn)
> ),
> TP_fast_assign(
> - __entry->dev = lip->li_mountp->m_super->s_dev;
> + __entry->dev = lip->li_log->l_mp->m_super->s_dev;
> __entry->lip = lip;
> __entry->type = lip->li_type;
> __entry->flags = lip->li_flags;
> diff --git a/fs/xfs/xfs_trans.c b/fs/xfs/xfs_trans.c
> index 82590007e6c5..de87fb136b51 100644
> --- a/fs/xfs/xfs_trans.c
> +++ b/fs/xfs/xfs_trans.c
> @@ -646,7 +646,7 @@ xfs_trans_add_item(
> struct xfs_trans *tp,
> struct xfs_log_item *lip)
> {
> - ASSERT(lip->li_mountp == tp->t_mountp);
> + ASSERT(lip->li_log == tp->t_mountp->m_log);
> ASSERT(lip->li_ailp == tp->t_mountp->m_ail);
> ASSERT(list_empty(&lip->li_trans));
> ASSERT(!test_bit(XFS_LI_DIRTY, &lip->li_flags));
> diff --git a/fs/xfs/xfs_trans.h b/fs/xfs/xfs_trans.h
> index 85dca2c9b559..1c5c5d7f522f 100644
> --- a/fs/xfs/xfs_trans.h
> +++ b/fs/xfs/xfs_trans.h
> @@ -8,6 +8,7 @@
>
> /* kernel only transaction subsystem defines */
>
> +struct xlog;
> struct xfs_buf;
> struct xfs_buftarg;
> struct xfs_efd_log_item;
> @@ -31,7 +32,7 @@ struct xfs_log_item {
> struct list_head li_ail; /* AIL pointers */
> struct list_head li_trans; /* transaction list */
> xfs_lsn_t li_lsn; /* last on-disk lsn */
> - struct xfs_mount *li_mountp; /* ptr to fs mount */
> + struct xlog *li_log;
> struct xfs_ail *li_ailp; /* ptr to AIL */
> uint li_type; /* item type */
> unsigned long li_flags; /* misc flags */
> --
> 2.35.1
>
next prev parent reply other threads:[~2022-03-15 19:37 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-03-15 6:42 [PATCH 0/7 v3] xfs: log recovery fixes Dave Chinner
2022-03-15 6:42 ` [PATCH 1/7] xfs: log worker needs to start before intent/unlink recovery Dave Chinner
2022-03-15 9:14 ` Chandan Babu R
2022-03-15 6:42 ` [PATCH 2/7] xfs: check buffer pin state after locking in delwri_submit Dave Chinner
2022-03-15 10:04 ` Chandan Babu R
2022-03-15 19:13 ` Darrick J. Wong
2022-03-15 21:11 ` Dave Chinner
2022-03-15 22:42 ` Darrick J. Wong
2022-03-15 6:42 ` [PATCH 3/7] xfs: xfs_ail_push_all_sync() stalls when racing with updates Dave Chinner
2022-03-15 15:14 ` Chandan Babu R
2022-03-15 19:17 ` Darrick J. Wong
2022-03-15 21:29 ` Dave Chinner
2022-03-15 6:42 ` [PATCH 4/7] xfs: async CIL flushes need pending pushes to be made stable Dave Chinner
2022-03-15 19:36 ` Darrick J. Wong
2022-03-15 21:47 ` Dave Chinner
2022-03-16 2:00 ` Darrick J. Wong
2022-03-16 10:34 ` Chandan Babu R
2022-03-16 23:24 ` Dave Chinner
2022-03-17 6:49 ` Chandan Babu R
2022-03-15 6:42 ` [PATCH 5/7] xfs: log items should have a xlog pointer, not a mount Dave Chinner
2022-03-15 19:37 ` Darrick J. Wong [this message]
2022-03-16 11:06 ` Chandan Babu R
2022-03-15 6:42 ` [PATCH 6/7] xfs: AIL should be log centric Dave Chinner
2022-03-15 19:39 ` Darrick J. Wong
2022-03-16 11:12 ` Chandan Babu R
2022-03-15 6:42 ` [PATCH 7/7] xfs: xfs_is_shutdown vs xlog_is_shutdown cage fight Dave Chinner
2022-03-15 20:03 ` Darrick J. Wong
2022-03-15 22:20 ` Dave Chinner
2022-03-16 1:22 ` Darrick J. Wong
-- strict thread matches above, loose matches on Subject: below --
2022-03-17 5:39 [PATCH 0/7 v4] xfs: log recovery fixes Dave Chinner
2022-03-17 5:39 ` [PATCH 5/7] xfs: log items should have a xlog pointer, not a mount Dave Chinner
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=20220315193702.GP8224@magnolia \
--to=djwong@kernel.org \
--cc=david@fromorbit.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.