xfs: per-filesystem stats counter implementation
[deliverable/linux.git] / fs / xfs / xfs_dquot.c
index 4143dc75dca4b22b15003ebd1bce5b3561a5deb8..7ac6c5c586cbadbd7784f24c7880f72d7ff66ed0 100644 (file)
@@ -75,9 +75,9 @@ xfs_qm_dqdestroy(
        ASSERT(list_empty(&dqp->q_lru));
 
        mutex_destroy(&dqp->q_qlock);
-       kmem_zone_free(xfs_qm_dqzone, dqp);
 
-       XFS_STATS_DEC(xs_qm_dquot);
+       XFS_STATS_DEC(dqp->q_mount, xs_qm_dquot);
+       kmem_zone_free(xfs_qm_dqzone, dqp);
 }
 
 /*
@@ -251,7 +251,7 @@ xfs_qm_init_dquot_blk(
                d->dd_diskdq.d_id = cpu_to_be32(curid);
                d->dd_diskdq.d_flags = type;
                if (xfs_sb_version_hascrc(&mp->m_sb)) {
-                       uuid_copy(&d->dd_uuid, &mp->m_sb.sb_uuid);
+                       uuid_copy(&d->dd_uuid, &mp->m_sb.sb_meta_uuid);
                        xfs_update_cksum((char *)d, sizeof(struct xfs_dqblk),
                                         XFS_DQUOT_CRC_OFF);
                }
@@ -605,7 +605,7 @@ xfs_qm_dqread(
                break;
        }
 
-       XFS_STATS_INC(xs_qm_dquot);
+       XFS_STATS_INC(mp, xs_qm_dquot);
 
        trace_xfs_dqread(dqp);
 
@@ -747,12 +747,12 @@ restart:
                mutex_unlock(&qi->qi_tree_lock);
 
                trace_xfs_dqget_hit(dqp);
-               XFS_STATS_INC(xs_qm_dqcachehits);
+               XFS_STATS_INC(mp, xs_qm_dqcachehits);
                *O_dqpp = dqp;
                return 0;
        }
        mutex_unlock(&qi->qi_tree_lock);
-       XFS_STATS_INC(xs_qm_dqcachemisses);
+       XFS_STATS_INC(mp, xs_qm_dqcachemisses);
 
        /*
         * Dquot cache miss. We don't want to keep the inode lock across
@@ -806,7 +806,7 @@ restart:
                mutex_unlock(&qi->qi_tree_lock);
                trace_xfs_dqget_dup(dqp);
                xfs_qm_dqdestroy(dqp);
-               XFS_STATS_INC(xs_qm_dquot_dups);
+               XFS_STATS_INC(mp, xs_qm_dquot_dups);
                goto restart;
        }
 
@@ -846,7 +846,7 @@ xfs_qm_dqput(
                trace_xfs_dqput_free(dqp);
 
                if (list_lru_add(&qi->qi_lru, &dqp->q_lru))
-                       XFS_STATS_INC(xs_qm_dquot_unused);
+                       XFS_STATS_INC(dqp->q_mount, xs_qm_dquot_unused);
        }
        xfs_dqunlock(dqp);
 }
@@ -954,12 +954,8 @@ xfs_qm_dqflush(
                struct xfs_log_item     *lip = &dqp->q_logitem.qli_item;
                dqp->dq_flags &= ~XFS_DQ_DIRTY;
 
-               spin_lock(&mp->m_ail->xa_lock);
-               if (lip->li_flags & XFS_LI_IN_AIL)
-                       xfs_trans_ail_delete(mp->m_ail, lip,
-                                            SHUTDOWN_CORRUPT_INCORE);
-               else
-                       spin_unlock(&mp->m_ail->xa_lock);
+               xfs_trans_ail_remove(lip, SHUTDOWN_CORRUPT_INCORE);
+
                error = -EIO;
                goto out_unlock;
        }
This page took 0.02521 seconds and 5 git commands to generate.