aboutsummaryrefslogtreecommitdiffstats
path: root/fs/xfs/xfs_inode.c
diff options
context:
space:
mode:
authorDave Chinner <david@fromorbit.com>2010-01-11 06:47:43 -0500
committerAlex Elder <aelder@sgi.com>2010-01-15 16:33:39 -0500
commit44b56e0a1aed522a10051645e85d300e10926fd3 (patch)
treec46879f4feaec1b19456395d74a2e9c27dde530d /fs/xfs/xfs_inode.c
parent4196ac08c023c6dab90c3fa460d9c06deaa304c4 (diff)
xfs: convert remaining direct references to m_perag
Convert the remaining direct lookups of the per ag structures to use get/put accesses. Ensure that the loops across AGs and prior users of the interface balance gets and puts correctly. Signed-off-by: Dave Chinner <david@fromorbit.com> Reviewed-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Alex Elder <aelder@sgi.com>
Diffstat (limited to 'fs/xfs/xfs_inode.c')
-rw-r--r--fs/xfs/xfs_inode.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/fs/xfs/xfs_inode.c b/fs/xfs/xfs_inode.c
index bd3d81636d51..0317b000ab44 100644
--- a/fs/xfs/xfs_inode.c
+++ b/fs/xfs/xfs_inode.c
@@ -2695,7 +2695,7 @@ xfs_iflush_cluster(
2695 ilist_size = inodes_per_cluster * sizeof(xfs_inode_t *); 2695 ilist_size = inodes_per_cluster * sizeof(xfs_inode_t *);
2696 ilist = kmem_alloc(ilist_size, KM_MAYFAIL|KM_NOFS); 2696 ilist = kmem_alloc(ilist_size, KM_MAYFAIL|KM_NOFS);
2697 if (!ilist) 2697 if (!ilist)
2698 return 0; 2698 goto out_put;
2699 2699
2700 mask = ~(((XFS_INODE_CLUSTER_SIZE(mp) >> mp->m_sb.sb_inodelog)) - 1); 2700 mask = ~(((XFS_INODE_CLUSTER_SIZE(mp) >> mp->m_sb.sb_inodelog)) - 1);
2701 first_index = XFS_INO_TO_AGINO(mp, ip->i_ino) & mask; 2701 first_index = XFS_INO_TO_AGINO(mp, ip->i_ino) & mask;
@@ -2764,6 +2764,8 @@ xfs_iflush_cluster(
2764out_free: 2764out_free:
2765 read_unlock(&pag->pag_ici_lock); 2765 read_unlock(&pag->pag_ici_lock);
2766 kmem_free(ilist); 2766 kmem_free(ilist);
2767out_put:
2768 xfs_perag_put(pag);
2767 return 0; 2769 return 0;
2768 2770
2769 2771
@@ -2807,6 +2809,7 @@ cluster_corrupt_out:
2807 */ 2809 */
2808 xfs_iflush_abort(iq); 2810 xfs_iflush_abort(iq);
2809 kmem_free(ilist); 2811 kmem_free(ilist);
2812 xfs_perag_put(pag);
2810 return XFS_ERROR(EFSCORRUPTED); 2813 return XFS_ERROR(EFSCORRUPTED);
2811} 2814}
2812 2815