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;
 
 #include "xfs_dquot.h"
 #include "xfs_trace.h"
 #include "xfs_log.h"
+#include "xfs_log_priv.h"
 
 
 struct kmem_cache      *xfs_buf_item_cache;
         * 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;
         * 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;
 
        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;
 
        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;
 
 xfs_log_item_in_current_chkpt(
        struct xfs_log_item     *lip)
 {
-       struct xfs_cil          *cil = lip->li_mountp->m_log->l_cilp;
+       struct xfs_cil          *cil = lip->li_log->l_cilp;
 
        if (list_empty(&lip->li_cil))
                return false;
 
        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;
 
        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;
 
                __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;
                __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;
 
        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));
 
 
 /* kernel only transaction subsystem defines */
 
+struct xlog;
 struct xfs_buf;
 struct xfs_buftarg;
 struct xfs_efd_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 */