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>
This commit is contained in:
@@ -2695,7 +2695,7 @@ xfs_iflush_cluster(
|
||||
ilist_size = inodes_per_cluster * sizeof(xfs_inode_t *);
|
||||
ilist = kmem_alloc(ilist_size, KM_MAYFAIL|KM_NOFS);
|
||||
if (!ilist)
|
||||
return 0;
|
||||
goto out_put;
|
||||
|
||||
mask = ~(((XFS_INODE_CLUSTER_SIZE(mp) >> mp->m_sb.sb_inodelog)) - 1);
|
||||
first_index = XFS_INO_TO_AGINO(mp, ip->i_ino) & mask;
|
||||
@@ -2764,6 +2764,8 @@ xfs_iflush_cluster(
|
||||
out_free:
|
||||
read_unlock(&pag->pag_ici_lock);
|
||||
kmem_free(ilist);
|
||||
out_put:
|
||||
xfs_perag_put(pag);
|
||||
return 0;
|
||||
|
||||
|
||||
@@ -2807,6 +2809,7 @@ cluster_corrupt_out:
|
||||
*/
|
||||
xfs_iflush_abort(iq);
|
||||
kmem_free(ilist);
|
||||
xfs_perag_put(pag);
|
||||
return XFS_ERROR(EFSCORRUPTED);
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user