diff options
Diffstat (limited to 'fs/xfs/xfs_alloc_btree.c')
-rw-r--r-- | fs/xfs/xfs_alloc_btree.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/fs/xfs/xfs_alloc_btree.c b/fs/xfs/xfs_alloc_btree.c index adbd9141aea1..b726e10d2c1c 100644 --- a/fs/xfs/xfs_alloc_btree.c +++ b/fs/xfs/xfs_alloc_btree.c | |||
@@ -61,12 +61,14 @@ xfs_allocbt_set_root( | |||
61 | struct xfs_agf *agf = XFS_BUF_TO_AGF(agbp); | 61 | struct xfs_agf *agf = XFS_BUF_TO_AGF(agbp); |
62 | xfs_agnumber_t seqno = be32_to_cpu(agf->agf_seqno); | 62 | xfs_agnumber_t seqno = be32_to_cpu(agf->agf_seqno); |
63 | int btnum = cur->bc_btnum; | 63 | int btnum = cur->bc_btnum; |
64 | struct xfs_perag *pag = xfs_perag_get(cur->bc_mp, seqno); | ||
64 | 65 | ||
65 | ASSERT(ptr->s != 0); | 66 | ASSERT(ptr->s != 0); |
66 | 67 | ||
67 | agf->agf_roots[btnum] = ptr->s; | 68 | agf->agf_roots[btnum] = ptr->s; |
68 | be32_add_cpu(&agf->agf_levels[btnum], inc); | 69 | be32_add_cpu(&agf->agf_levels[btnum], inc); |
69 | cur->bc_mp->m_perag[seqno].pagf_levels[btnum] += inc; | 70 | pag->pagf_levels[btnum] += inc; |
71 | xfs_perag_put(pag); | ||
70 | 72 | ||
71 | xfs_alloc_log_agf(cur->bc_tp, agbp, XFS_AGF_ROOTS | XFS_AGF_LEVELS); | 73 | xfs_alloc_log_agf(cur->bc_tp, agbp, XFS_AGF_ROOTS | XFS_AGF_LEVELS); |
72 | } | 74 | } |
@@ -150,6 +152,7 @@ xfs_allocbt_update_lastrec( | |||
150 | { | 152 | { |
151 | struct xfs_agf *agf = XFS_BUF_TO_AGF(cur->bc_private.a.agbp); | 153 | struct xfs_agf *agf = XFS_BUF_TO_AGF(cur->bc_private.a.agbp); |
152 | xfs_agnumber_t seqno = be32_to_cpu(agf->agf_seqno); | 154 | xfs_agnumber_t seqno = be32_to_cpu(agf->agf_seqno); |
155 | struct xfs_perag *pag; | ||
153 | __be32 len; | 156 | __be32 len; |
154 | int numrecs; | 157 | int numrecs; |
155 | 158 | ||
@@ -193,7 +196,9 @@ xfs_allocbt_update_lastrec( | |||
193 | } | 196 | } |
194 | 197 | ||
195 | agf->agf_longest = len; | 198 | agf->agf_longest = len; |
196 | cur->bc_mp->m_perag[seqno].pagf_longest = be32_to_cpu(len); | 199 | pag = xfs_perag_get(cur->bc_mp, seqno); |
200 | pag->pagf_longest = be32_to_cpu(len); | ||
201 | xfs_perag_put(pag); | ||
197 | xfs_alloc_log_agf(cur->bc_tp, cur->bc_private.a.agbp, XFS_AGF_LONGEST); | 202 | xfs_alloc_log_agf(cur->bc_tp, cur->bc_private.a.agbp, XFS_AGF_LONGEST); |
198 | } | 203 | } |
199 | 204 | ||