aboutsummaryrefslogtreecommitdiffstats
path: root/fs/xfs/quota/xfs_qm.c
diff options
context:
space:
mode:
authorChristoph Hellwig <hch@lst.de>2010-06-23 04:11:11 -0400
committerDave Chinner <david@fromorbit.com>2010-06-23 04:11:11 -0400
commit7dce11dbac54fce777eea0f5fb25b2694ccd7900 (patch)
tree90d6d109ca110bcbf47a954a8283ec250be07003 /fs/xfs/quota/xfs_qm.c
parent1817176a86352f65210139d4c794ad2d19fc6b63 (diff)
xfs: always use iget in bulkstat
The non-coherent bulkstat versionsthat look directly at the inode buffers causes various problems with performance optimizations that make increased use of just logging inodes. This patch makes bulkstat always use iget, which should be fast enough for normal use with the radix-tree based inode cache introduced a while ago. Signed-off-by: Christoph Hellwig <hch@lst.de> Reviewed-by: Dave Chinner <dchinner@redhat.com>
Diffstat (limited to 'fs/xfs/quota/xfs_qm.c')
-rw-r--r--fs/xfs/quota/xfs_qm.c11
1 files changed, 5 insertions, 6 deletions
diff --git a/fs/xfs/quota/xfs_qm.c b/fs/xfs/quota/xfs_qm.c
index 2d8b7bc792c9..f19f94c4cb9f 100644
--- a/fs/xfs/quota/xfs_qm.c
+++ b/fs/xfs/quota/xfs_qm.c
@@ -1632,10 +1632,8 @@ xfs_qm_dqusage_adjust(
1632 xfs_ino_t ino, /* inode number to get data for */ 1632 xfs_ino_t ino, /* inode number to get data for */
1633 void __user *buffer, /* not used */ 1633 void __user *buffer, /* not used */
1634 int ubsize, /* not used */ 1634 int ubsize, /* not used */
1635 void *private_data, /* not used */
1636 xfs_daddr_t bno, /* starting block of inode cluster */ 1635 xfs_daddr_t bno, /* starting block of inode cluster */
1637 int *ubused, /* not used */ 1636 int *ubused, /* not used */
1638 void *dip, /* on-disk inode pointer (not used) */
1639 int *res) /* result code value */ 1637 int *res) /* result code value */
1640{ 1638{
1641 xfs_inode_t *ip; 1639 xfs_inode_t *ip;
@@ -1796,12 +1794,13 @@ xfs_qm_quotacheck(
1796 * Iterate thru all the inodes in the file system, 1794 * Iterate thru all the inodes in the file system,
1797 * adjusting the corresponding dquot counters in core. 1795 * adjusting the corresponding dquot counters in core.
1798 */ 1796 */
1799 if ((error = xfs_bulkstat(mp, &lastino, &count, 1797 error = xfs_bulkstat(mp, &lastino, &count,
1800 xfs_qm_dqusage_adjust, NULL, 1798 xfs_qm_dqusage_adjust,
1801 structsz, NULL, BULKSTAT_FG_IGET, &done))) 1799 structsz, NULL, &done);
1800 if (error)
1802 break; 1801 break;
1803 1802
1804 } while (! done); 1803 } while (!done);
1805 1804
1806 /* 1805 /*
1807 * We've made all the changes that we need to make incore. 1806 * We've made all the changes that we need to make incore.