diff options
Diffstat (limited to 'fs/xfs/xfs_alloc_btree.c')
-rw-r--r-- | fs/xfs/xfs_alloc_btree.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/fs/xfs/xfs_alloc_btree.c b/fs/xfs/xfs_alloc_btree.c index c10c3a292d30..b726e10d2c1c 100644 --- a/fs/xfs/xfs_alloc_btree.c +++ b/fs/xfs/xfs_alloc_btree.c | |||
@@ -39,6 +39,7 @@ | |||
39 | #include "xfs_ialloc.h" | 39 | #include "xfs_ialloc.h" |
40 | #include "xfs_alloc.h" | 40 | #include "xfs_alloc.h" |
41 | #include "xfs_error.h" | 41 | #include "xfs_error.h" |
42 | #include "xfs_trace.h" | ||
42 | 43 | ||
43 | 44 | ||
44 | STATIC struct xfs_btree_cur * | 45 | STATIC struct xfs_btree_cur * |
@@ -60,12 +61,14 @@ xfs_allocbt_set_root( | |||
60 | struct xfs_agf *agf = XFS_BUF_TO_AGF(agbp); | 61 | struct xfs_agf *agf = XFS_BUF_TO_AGF(agbp); |
61 | xfs_agnumber_t seqno = be32_to_cpu(agf->agf_seqno); | 62 | xfs_agnumber_t seqno = be32_to_cpu(agf->agf_seqno); |
62 | int btnum = cur->bc_btnum; | 63 | int btnum = cur->bc_btnum; |
64 | struct xfs_perag *pag = xfs_perag_get(cur->bc_mp, seqno); | ||
63 | 65 | ||
64 | ASSERT(ptr->s != 0); | 66 | ASSERT(ptr->s != 0); |
65 | 67 | ||
66 | agf->agf_roots[btnum] = ptr->s; | 68 | agf->agf_roots[btnum] = ptr->s; |
67 | be32_add_cpu(&agf->agf_levels[btnum], inc); | 69 | be32_add_cpu(&agf->agf_levels[btnum], inc); |
68 | cur->bc_mp->m_perag[seqno].pagf_levels[btnum] += inc; | 70 | pag->pagf_levels[btnum] += inc; |
71 | xfs_perag_put(pag); | ||
69 | 72 | ||
70 | 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); |
71 | } | 74 | } |
@@ -149,6 +152,7 @@ xfs_allocbt_update_lastrec( | |||
149 | { | 152 | { |
150 | 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); |
151 | 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; | ||
152 | __be32 len; | 156 | __be32 len; |
153 | int numrecs; | 157 | int numrecs; |
154 | 158 | ||
@@ -192,7 +196,9 @@ xfs_allocbt_update_lastrec( | |||
192 | } | 196 | } |
193 | 197 | ||
194 | agf->agf_longest = len; | 198 | agf->agf_longest = len; |
195 | 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); | ||
196 | 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); |
197 | } | 203 | } |
198 | 204 | ||