[XFS] Endianess annotations for various allocator data structures
SGI-PV: 943272 SGI-Modid: xfs-linux:xfs-kern:201006a Signed-off-by: Christoph Hellwig <hch@sgi.com> Signed-off-by: Nathan Scott <nathans@sgi.com>
This commit is contained in:
committed by
Nathan Scott
parent
e2ed81fbbb
commit
16259e7d95
@@ -90,11 +90,14 @@ xfs_btree_maxrecs(
|
||||
switch (cur->bc_btnum) {
|
||||
case XFS_BTNUM_BNO:
|
||||
case XFS_BTNUM_CNT:
|
||||
return (int)XFS_ALLOC_BLOCK_MAXRECS(INT_GET(block->bb_h.bb_level, ARCH_CONVERT), cur);
|
||||
return (int)XFS_ALLOC_BLOCK_MAXRECS(
|
||||
be16_to_cpu(block->bb_h.bb_level), cur);
|
||||
case XFS_BTNUM_BMAP:
|
||||
return (int)XFS_BMAP_BLOCK_IMAXRECS(INT_GET(block->bb_h.bb_level, ARCH_CONVERT), cur);
|
||||
return (int)XFS_BMAP_BLOCK_IMAXRECS(
|
||||
be16_to_cpu(block->bb_h.bb_level), cur);
|
||||
case XFS_BTNUM_INO:
|
||||
return (int)XFS_INOBT_BLOCK_MAXRECS(INT_GET(block->bb_h.bb_level, ARCH_CONVERT), cur);
|
||||
return (int)XFS_INOBT_BLOCK_MAXRECS(
|
||||
be16_to_cpu(block->bb_h.bb_level), cur);
|
||||
default:
|
||||
ASSERT(0);
|
||||
return 0;
|
||||
@@ -140,7 +143,7 @@ xfs_btree_check_key(
|
||||
|
||||
k1 = ak1;
|
||||
k2 = ak2;
|
||||
ASSERT(INT_GET(k1->ar_startblock, ARCH_CONVERT) < INT_GET(k2->ar_startblock, ARCH_CONVERT));
|
||||
ASSERT(be32_to_cpu(k1->ar_startblock) < be32_to_cpu(k2->ar_startblock));
|
||||
break;
|
||||
}
|
||||
case XFS_BTNUM_CNT: {
|
||||
@@ -149,9 +152,9 @@ xfs_btree_check_key(
|
||||
|
||||
k1 = ak1;
|
||||
k2 = ak2;
|
||||
ASSERT(INT_GET(k1->ar_blockcount, ARCH_CONVERT) < INT_GET(k2->ar_blockcount, ARCH_CONVERT) ||
|
||||
(INT_GET(k1->ar_blockcount, ARCH_CONVERT) == INT_GET(k2->ar_blockcount, ARCH_CONVERT) &&
|
||||
INT_GET(k1->ar_startblock, ARCH_CONVERT) < INT_GET(k2->ar_startblock, ARCH_CONVERT)));
|
||||
ASSERT(be32_to_cpu(k1->ar_blockcount) < be32_to_cpu(k2->ar_blockcount) ||
|
||||
(k1->ar_blockcount == k2->ar_blockcount &&
|
||||
be32_to_cpu(k1->ar_startblock) < be32_to_cpu(k2->ar_startblock)));
|
||||
break;
|
||||
}
|
||||
case XFS_BTNUM_BMAP: {
|
||||
@@ -194,16 +197,16 @@ xfs_btree_check_lblock(
|
||||
|
||||
mp = cur->bc_mp;
|
||||
lblock_ok =
|
||||
INT_GET(block->bb_magic, ARCH_CONVERT) == xfs_magics[cur->bc_btnum] &&
|
||||
INT_GET(block->bb_level, ARCH_CONVERT) == level &&
|
||||
INT_GET(block->bb_numrecs, ARCH_CONVERT) <=
|
||||
be32_to_cpu(block->bb_magic) == xfs_magics[cur->bc_btnum] &&
|
||||
be16_to_cpu(block->bb_level) == level &&
|
||||
be16_to_cpu(block->bb_numrecs) <=
|
||||
xfs_btree_maxrecs(cur, (xfs_btree_block_t *)block) &&
|
||||
block->bb_leftsib &&
|
||||
(INT_GET(block->bb_leftsib, ARCH_CONVERT) == NULLDFSBNO ||
|
||||
XFS_FSB_SANITY_CHECK(mp, INT_GET(block->bb_leftsib, ARCH_CONVERT))) &&
|
||||
(be64_to_cpu(block->bb_leftsib) == NULLDFSBNO ||
|
||||
XFS_FSB_SANITY_CHECK(mp, be64_to_cpu(block->bb_leftsib))) &&
|
||||
block->bb_rightsib &&
|
||||
(INT_GET(block->bb_rightsib, ARCH_CONVERT) == NULLDFSBNO ||
|
||||
XFS_FSB_SANITY_CHECK(mp, INT_GET(block->bb_rightsib, ARCH_CONVERT)));
|
||||
(be64_to_cpu(block->bb_rightsib) == NULLDFSBNO ||
|
||||
XFS_FSB_SANITY_CHECK(mp, be64_to_cpu(block->bb_rightsib)));
|
||||
if (unlikely(XFS_TEST_ERROR(!lblock_ok, mp, XFS_ERRTAG_BTREE_CHECK_LBLOCK,
|
||||
XFS_RANDOM_BTREE_CHECK_LBLOCK))) {
|
||||
if (bp)
|
||||
@@ -251,8 +254,9 @@ xfs_btree_check_rec(
|
||||
|
||||
r1 = ar1;
|
||||
r2 = ar2;
|
||||
ASSERT(INT_GET(r1->ar_startblock, ARCH_CONVERT) + INT_GET(r1->ar_blockcount, ARCH_CONVERT) <=
|
||||
INT_GET(r2->ar_startblock, ARCH_CONVERT));
|
||||
ASSERT(be32_to_cpu(r1->ar_startblock) +
|
||||
be32_to_cpu(r1->ar_blockcount) <=
|
||||
be32_to_cpu(r2->ar_startblock));
|
||||
break;
|
||||
}
|
||||
case XFS_BTNUM_CNT: {
|
||||
@@ -261,9 +265,9 @@ xfs_btree_check_rec(
|
||||
|
||||
r1 = ar1;
|
||||
r2 = ar2;
|
||||
ASSERT(INT_GET(r1->ar_blockcount, ARCH_CONVERT) < INT_GET(r2->ar_blockcount, ARCH_CONVERT) ||
|
||||
(INT_GET(r1->ar_blockcount, ARCH_CONVERT) == INT_GET(r2->ar_blockcount, ARCH_CONVERT) &&
|
||||
INT_GET(r1->ar_startblock, ARCH_CONVERT) < INT_GET(r2->ar_startblock, ARCH_CONVERT)));
|
||||
ASSERT(be32_to_cpu(r1->ar_blockcount) < be32_to_cpu(r2->ar_blockcount) ||
|
||||
(r1->ar_blockcount == r2->ar_blockcount &&
|
||||
be32_to_cpu(r1->ar_startblock) < be32_to_cpu(r2->ar_startblock)));
|
||||
break;
|
||||
}
|
||||
case XFS_BTNUM_BMAP: {
|
||||
@@ -311,17 +315,17 @@ xfs_btree_check_sblock(
|
||||
|
||||
agbp = cur->bc_private.a.agbp;
|
||||
agf = XFS_BUF_TO_AGF(agbp);
|
||||
agflen = INT_GET(agf->agf_length, ARCH_CONVERT);
|
||||
agflen = be32_to_cpu(agf->agf_length);
|
||||
sblock_ok =
|
||||
INT_GET(block->bb_magic, ARCH_CONVERT) == xfs_magics[cur->bc_btnum] &&
|
||||
INT_GET(block->bb_level, ARCH_CONVERT) == level &&
|
||||
INT_GET(block->bb_numrecs, ARCH_CONVERT) <=
|
||||
be32_to_cpu(block->bb_magic) == xfs_magics[cur->bc_btnum] &&
|
||||
be16_to_cpu(block->bb_level) == level &&
|
||||
be16_to_cpu(block->bb_numrecs) <=
|
||||
xfs_btree_maxrecs(cur, (xfs_btree_block_t *)block) &&
|
||||
(INT_GET(block->bb_leftsib, ARCH_CONVERT) == NULLAGBLOCK ||
|
||||
INT_GET(block->bb_leftsib, ARCH_CONVERT) < agflen) &&
|
||||
(be32_to_cpu(block->bb_leftsib) == NULLAGBLOCK ||
|
||||
be32_to_cpu(block->bb_leftsib) < agflen) &&
|
||||
block->bb_leftsib &&
|
||||
(INT_GET(block->bb_rightsib, ARCH_CONVERT) == NULLAGBLOCK ||
|
||||
INT_GET(block->bb_rightsib, ARCH_CONVERT) < agflen) &&
|
||||
(be32_to_cpu(block->bb_rightsib) == NULLAGBLOCK ||
|
||||
be32_to_cpu(block->bb_rightsib) < agflen) &&
|
||||
block->bb_rightsib;
|
||||
if (unlikely(XFS_TEST_ERROR(!sblock_ok, cur->bc_mp,
|
||||
XFS_ERRTAG_BTREE_CHECK_SBLOCK,
|
||||
@@ -352,7 +356,7 @@ xfs_btree_check_sptr(
|
||||
XFS_WANT_CORRUPTED_RETURN(
|
||||
level > 0 &&
|
||||
ptr != NULLAGBLOCK && ptr != 0 &&
|
||||
ptr < INT_GET(agf->agf_length, ARCH_CONVERT));
|
||||
ptr < be32_to_cpu(agf->agf_length));
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -591,15 +595,15 @@ xfs_btree_init_cursor(
|
||||
case XFS_BTNUM_BNO:
|
||||
case XFS_BTNUM_CNT:
|
||||
agf = XFS_BUF_TO_AGF(agbp);
|
||||
nlevels = INT_GET(agf->agf_levels[btnum], ARCH_CONVERT);
|
||||
nlevels = be32_to_cpu(agf->agf_levels[btnum]);
|
||||
break;
|
||||
case XFS_BTNUM_BMAP:
|
||||
ifp = XFS_IFORK_PTR(ip, whichfork);
|
||||
nlevels = INT_GET(ifp->if_broot->bb_level, ARCH_CONVERT) + 1;
|
||||
nlevels = be16_to_cpu(ifp->if_broot->bb_level) + 1;
|
||||
break;
|
||||
case XFS_BTNUM_INO:
|
||||
agi = XFS_BUF_TO_AGI(agbp);
|
||||
nlevels = INT_GET(agi->agi_level, ARCH_CONVERT);
|
||||
nlevels = be32_to_cpu(agi->agi_level);
|
||||
break;
|
||||
default:
|
||||
ASSERT(0);
|
||||
@@ -663,9 +667,9 @@ xfs_btree_islastblock(
|
||||
block = xfs_btree_get_block(cur, level, &bp);
|
||||
xfs_btree_check_block(cur, block, level, bp);
|
||||
if (XFS_BTREE_LONG_PTRS(cur->bc_btnum))
|
||||
return INT_GET(block->bb_u.l.bb_rightsib, ARCH_CONVERT) == NULLDFSBNO;
|
||||
return be64_to_cpu(block->bb_u.l.bb_rightsib) == NULLDFSBNO;
|
||||
else
|
||||
return INT_GET(block->bb_u.s.bb_rightsib, ARCH_CONVERT) == NULLAGBLOCK;
|
||||
return be32_to_cpu(block->bb_u.s.bb_rightsib) == NULLAGBLOCK;
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -693,7 +697,7 @@ xfs_btree_lastrec(
|
||||
/*
|
||||
* Set the ptr value to numrecs, that's the last record/key.
|
||||
*/
|
||||
cur->bc_ptrs[level] = INT_GET(block->bb_h.bb_numrecs, ARCH_CONVERT);
|
||||
cur->bc_ptrs[level] = be16_to_cpu(block->bb_h.bb_numrecs);
|
||||
return 1;
|
||||
}
|
||||
|
||||
@@ -863,38 +867,38 @@ xfs_btree_readahead_core(
|
||||
case XFS_BTNUM_BNO:
|
||||
case XFS_BTNUM_CNT:
|
||||
a = XFS_BUF_TO_ALLOC_BLOCK(cur->bc_bufs[lev]);
|
||||
if ((lr & XFS_BTCUR_LEFTRA) && INT_GET(a->bb_leftsib, ARCH_CONVERT) != NULLAGBLOCK) {
|
||||
if ((lr & XFS_BTCUR_LEFTRA) && be32_to_cpu(a->bb_leftsib) != NULLAGBLOCK) {
|
||||
xfs_btree_reada_bufs(cur->bc_mp, cur->bc_private.a.agno,
|
||||
INT_GET(a->bb_leftsib, ARCH_CONVERT), 1);
|
||||
be32_to_cpu(a->bb_leftsib), 1);
|
||||
rval++;
|
||||
}
|
||||
if ((lr & XFS_BTCUR_RIGHTRA) && INT_GET(a->bb_rightsib, ARCH_CONVERT) != NULLAGBLOCK) {
|
||||
if ((lr & XFS_BTCUR_RIGHTRA) && be32_to_cpu(a->bb_rightsib) != NULLAGBLOCK) {
|
||||
xfs_btree_reada_bufs(cur->bc_mp, cur->bc_private.a.agno,
|
||||
INT_GET(a->bb_rightsib, ARCH_CONVERT), 1);
|
||||
be32_to_cpu(a->bb_rightsib), 1);
|
||||
rval++;
|
||||
}
|
||||
break;
|
||||
case XFS_BTNUM_BMAP:
|
||||
b = XFS_BUF_TO_BMBT_BLOCK(cur->bc_bufs[lev]);
|
||||
if ((lr & XFS_BTCUR_LEFTRA) && INT_GET(b->bb_leftsib, ARCH_CONVERT) != NULLDFSBNO) {
|
||||
xfs_btree_reada_bufl(cur->bc_mp, INT_GET(b->bb_leftsib, ARCH_CONVERT), 1);
|
||||
if ((lr & XFS_BTCUR_LEFTRA) && be64_to_cpu(b->bb_leftsib) != NULLDFSBNO) {
|
||||
xfs_btree_reada_bufl(cur->bc_mp, be64_to_cpu(b->bb_leftsib), 1);
|
||||
rval++;
|
||||
}
|
||||
if ((lr & XFS_BTCUR_RIGHTRA) && INT_GET(b->bb_rightsib, ARCH_CONVERT) != NULLDFSBNO) {
|
||||
xfs_btree_reada_bufl(cur->bc_mp, INT_GET(b->bb_rightsib, ARCH_CONVERT), 1);
|
||||
if ((lr & XFS_BTCUR_RIGHTRA) && be64_to_cpu(b->bb_rightsib) != NULLDFSBNO) {
|
||||
xfs_btree_reada_bufl(cur->bc_mp, be64_to_cpu(b->bb_rightsib), 1);
|
||||
rval++;
|
||||
}
|
||||
break;
|
||||
case XFS_BTNUM_INO:
|
||||
i = XFS_BUF_TO_INOBT_BLOCK(cur->bc_bufs[lev]);
|
||||
if ((lr & XFS_BTCUR_LEFTRA) && INT_GET(i->bb_leftsib, ARCH_CONVERT) != NULLAGBLOCK) {
|
||||
if ((lr & XFS_BTCUR_LEFTRA) && be32_to_cpu(i->bb_leftsib) != NULLAGBLOCK) {
|
||||
xfs_btree_reada_bufs(cur->bc_mp, cur->bc_private.i.agno,
|
||||
INT_GET(i->bb_leftsib, ARCH_CONVERT), 1);
|
||||
be32_to_cpu(i->bb_leftsib), 1);
|
||||
rval++;
|
||||
}
|
||||
if ((lr & XFS_BTCUR_RIGHTRA) && INT_GET(i->bb_rightsib, ARCH_CONVERT) != NULLAGBLOCK) {
|
||||
if ((lr & XFS_BTCUR_RIGHTRA) && be32_to_cpu(i->bb_rightsib) != NULLAGBLOCK) {
|
||||
xfs_btree_reada_bufs(cur->bc_mp, cur->bc_private.i.agno,
|
||||
INT_GET(i->bb_rightsib, ARCH_CONVERT), 1);
|
||||
be32_to_cpu(i->bb_rightsib), 1);
|
||||
rval++;
|
||||
}
|
||||
break;
|
||||
@@ -926,14 +930,14 @@ xfs_btree_setbuf(
|
||||
return;
|
||||
b = XFS_BUF_TO_BLOCK(bp);
|
||||
if (XFS_BTREE_LONG_PTRS(cur->bc_btnum)) {
|
||||
if (INT_GET(b->bb_u.l.bb_leftsib, ARCH_CONVERT) == NULLDFSBNO)
|
||||
if (be64_to_cpu(b->bb_u.l.bb_leftsib) == NULLDFSBNO)
|
||||
cur->bc_ra[lev] |= XFS_BTCUR_LEFTRA;
|
||||
if (INT_GET(b->bb_u.l.bb_rightsib, ARCH_CONVERT) == NULLDFSBNO)
|
||||
if (be64_to_cpu(b->bb_u.l.bb_rightsib) == NULLDFSBNO)
|
||||
cur->bc_ra[lev] |= XFS_BTCUR_RIGHTRA;
|
||||
} else {
|
||||
if (INT_GET(b->bb_u.s.bb_leftsib, ARCH_CONVERT) == NULLAGBLOCK)
|
||||
if (be32_to_cpu(b->bb_u.s.bb_leftsib) == NULLAGBLOCK)
|
||||
cur->bc_ra[lev] |= XFS_BTCUR_LEFTRA;
|
||||
if (INT_GET(b->bb_u.s.bb_rightsib, ARCH_CONVERT) == NULLAGBLOCK)
|
||||
if (be32_to_cpu(b->bb_u.s.bb_rightsib) == NULLAGBLOCK)
|
||||
cur->bc_ra[lev] |= XFS_BTCUR_RIGHTRA;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user