Message ID | 20220315064241.3133751-6-david@fromorbit.com (mailing list archive) |
---|---|
State | Deferred, archived |
Headers | show |
Series | xfs: log recovery fixes | expand |
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 >
On 15 Mar 2022 at 12:12, 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. > This patch didn't cleanly apply on top of v5.17-rc8 + Previous 4 patches. But the changes look to be quite simple. Reviewed-by: Chandan Babu R <chandan.babu@oracle.com> > Signed-off-by: Dave Chinner <dchinner@redhat.com> > --- > 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 */
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 */