Commit 2b203f6c authored by Stephen Lord's avatar Stephen Lord

XFS: fix byte ordering issues with earlier allocator fix

Modid: 2.5.x-xfs:slinx:130071a
parent 405b12f0
...@@ -1773,9 +1773,9 @@ xfs_free_ag_extent( ...@@ -1773,9 +1773,9 @@ xfs_free_ag_extent(
* used in xfs_bmap_finish, we can't allow block to be available * used in xfs_bmap_finish, we can't allow block to be available
* for reallocation and non-transaction writing (user data) * for reallocation and non-transaction writing (user data)
* until we know that the transaction that moved it to the free * until we know that the transaction that moved it to the free
* list is permanently on disk. We track the blocks by declaring * list is permanently on disk. We track the blocks by declaring
* these blocks as "busy"; the busy list is maintained on a per-ag * these blocks as "busy"; the busy list is maintained on a per-ag
* basis and each transaction records which entries should be removed * basis and each transaction records which entries should be removed
* when the iclog commits to disk. If a busy block is allocated, * when the iclog commits to disk. If a busy block is allocated,
* the iclog is pushed up to the LSN that freed the block. * the iclog is pushed up to the LSN that freed the block.
*/ */
...@@ -2114,8 +2114,9 @@ xfs_alloc_put_freelist( ...@@ -2114,8 +2114,9 @@ xfs_alloc_put_freelist(
agf = XFS_BUF_TO_AGF(agbp); agf = XFS_BUF_TO_AGF(agbp);
mp = tp->t_mountp; mp = tp->t_mountp;
if (!agflbp &&
(error = xfs_alloc_read_agfl(mp, tp, agf->agf_seqno, &agflbp))) if (!agflbp && (error = xfs_alloc_read_agfl(mp, tp,
INT_GET(agf->agf_seqno, ARCH_CONVERT), &agflbp)))
return error; return error;
agfl = XFS_BUF_TO_AGFL(agflbp); agfl = XFS_BUF_TO_AGFL(agflbp);
INT_MOD(agf->agf_fllast, ARCH_CONVERT, 1); INT_MOD(agf->agf_fllast, ARCH_CONVERT, 1);
......
...@@ -237,7 +237,8 @@ xfs_alloc_delrec( ...@@ -237,7 +237,8 @@ xfs_alloc_delrec(
* allocated, the iclog is pushed up to the LSN * allocated, the iclog is pushed up to the LSN
* that freed the block. * that freed the block.
*/ */
xfs_alloc_mark_busy(cur->bc_tp, agf->agf_seqno, bno, 1); xfs_alloc_mark_busy(cur->bc_tp,
INT_GET(agf->agf_seqno, ARCH_CONVERT), bno, 1);
xfs_trans_agbtree_delta(cur->bc_tp, -1); xfs_trans_agbtree_delta(cur->bc_tp, -1);
xfs_alloc_log_agf(cur->bc_tp, cur->bc_private.a.agbp, xfs_alloc_log_agf(cur->bc_tp, cur->bc_private.a.agbp,
...@@ -556,7 +557,8 @@ xfs_alloc_delrec( ...@@ -556,7 +557,8 @@ xfs_alloc_delrec(
* busy block is allocated, the iclog is pushed up to the * busy block is allocated, the iclog is pushed up to the
* LSN that freed the block. * LSN that freed the block.
*/ */
xfs_alloc_mark_busy(cur->bc_tp, agf->agf_seqno, bno, 1); xfs_alloc_mark_busy(cur->bc_tp,
INT_GET(agf->agf_seqno, ARCH_CONVERT), bno, 1);
xfs_trans_agbtree_delta(cur->bc_tp, -1); xfs_trans_agbtree_delta(cur->bc_tp, -1);
/* /*
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment