* If log item pinning is enabled, skip the push and track the item as
         * pinned. This can help induce head-behind-tail conditions.
         */
-       if (XFS_TEST_ERROR(false, ailp->ail_mount, XFS_ERRTAG_LOG_ITEM_PIN))
+       if (XFS_TEST_ERROR(false, ailp->ail_log->l_mp, XFS_ERRTAG_LOG_ITEM_PIN))
                return XFS_ITEM_PINNED;
 
        /*
 xfsaild_push(
        struct xfs_ail          *ailp)
 {
-       xfs_mount_t             *mp = ailp->ail_mount;
+       struct xfs_mount        *mp = ailp->ail_log->l_mp;
        struct xfs_ail_cursor   cur;
        struct xfs_log_item     *lip;
        xfs_lsn_t               lsn;
                ailp->ail_log_flush = 0;
 
                XFS_STATS_INC(mp, xs_push_ail_flush);
-               xlog_cil_flush(mp->m_log);
+               xlog_cil_flush(ailp->ail_log);
        }
 
        spin_lock(&ailp->ail_lock);
                         * opportunity to release such buffers from the queue.
                         */
                        ASSERT(list_empty(&ailp->ail_buf_list) ||
-                              xfs_is_shutdown(ailp->ail_mount));
+                              xlog_is_shutdown(ailp->ail_log));
                        xfs_buf_delwri_cancel(&ailp->ail_buf_list);
                        break;
                }
        struct xfs_log_item     *lip;
 
        lip = xfs_ail_min(ailp);
-       if (!lip || xfs_is_shutdown(ailp->ail_mount) ||
+       if (!lip || xlog_is_shutdown(ailp->ail_log) ||
            XFS_LSN_CMP(threshold_lsn, ailp->ail_target) <= 0)
                return;
 
        struct xfs_ail          *ailp,
        xfs_lsn_t               old_lsn) __releases(ailp->ail_lock)
 {
-       struct xfs_mount        *mp = ailp->ail_mount;
+       struct xlog             *log = ailp->ail_log;
 
        /* if the tail lsn hasn't changed, don't do updates or wakeups. */
        if (!old_lsn || old_lsn == __xfs_ail_min_lsn(ailp)) {
                return;
        }
 
-       if (!xfs_is_shutdown(mp))
-               xlog_assign_tail_lsn_locked(mp);
+       if (!xlog_is_shutdown(log))
+               xlog_assign_tail_lsn_locked(log->l_mp);
 
        if (list_empty(&ailp->ail_head))
                wake_up_all(&ailp->ail_empty);
        spin_unlock(&ailp->ail_lock);
-       xfs_log_space_wake(mp);
+       xfs_log_space_wake(log->l_mp);
 }
 
 /*
        int                     shutdown_type)
 {
        struct xfs_ail          *ailp = lip->li_ailp;
-       struct xfs_mount        *mp = ailp->ail_mount;
+       struct xfs_mount        *mp = ailp->ail_log->l_mp;
        xfs_lsn_t               tail_lsn;
 
        spin_lock(&ailp->ail_lock);
        if (!test_bit(XFS_LI_IN_AIL, &lip->li_flags)) {
                spin_unlock(&ailp->ail_lock);
-               if (shutdown_type && !xfs_is_shutdown(mp)) {
+               if (shutdown_type && !xlog_is_shutdown(ailp->ail_log)) {
                        xfs_alert_tag(mp, XFS_PTAG_AILDELETE,
        "%s: attempting to delete a log item that is not in the AIL",
                                        __func__);
        if (!ailp)
                return -ENOMEM;
 
-       ailp->ail_mount = mp;
+       ailp->ail_log = mp->m_log;
        INIT_LIST_HEAD(&ailp->ail_head);
        INIT_LIST_HEAD(&ailp->ail_cursors);
        spin_lock_init(&ailp->ail_lock);
        init_waitqueue_head(&ailp->ail_empty);
 
        ailp->ail_task = kthread_run(xfsaild, ailp, "xfsaild/%s",
-                       ailp->ail_mount->m_super->s_id);
+                               mp->m_super->s_id);
        if (IS_ERR(ailp->ail_task))
                goto out_free_ailp;