xfs: remove XFS_BUF_TO_AGF
Just dereference bp->b_addr directly and make the code a little simpler and more clear. Signed-off-by: Christoph Hellwig <hch@lst.de> Reviewed-by: Eric Sandeen <sandeen@redhat.com> Reviewed-by: Brian Foster <bfoster@redhat.com> Reviewed-by: Darrick J. Wong <darrick.wong@oracle.com> Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
This commit is contained in:

committed by
Darrick J. Wong

parent
370c782b98
commit
9798f615ad
@@ -714,7 +714,7 @@ xfs_alloc_update_counters(
|
||||
struct xfs_buf *agbp,
|
||||
long len)
|
||||
{
|
||||
struct xfs_agf *agf = XFS_BUF_TO_AGF(agbp);
|
||||
struct xfs_agf *agf = agbp->b_addr;
|
||||
|
||||
pag->pagf_freeblks += len;
|
||||
be32_add_cpu(&agf->agf_freeblks, len);
|
||||
@@ -923,13 +923,13 @@ xfs_alloc_cur_finish(
|
||||
struct xfs_alloc_arg *args,
|
||||
struct xfs_alloc_cur *acur)
|
||||
{
|
||||
struct xfs_agf __maybe_unused *agf = args->agbp->b_addr;
|
||||
int error;
|
||||
|
||||
ASSERT(acur->cnt && acur->bnolt);
|
||||
ASSERT(acur->bno >= acur->rec_bno);
|
||||
ASSERT(acur->bno + acur->len <= acur->rec_bno + acur->rec_len);
|
||||
ASSERT(acur->rec_bno + acur->rec_len <=
|
||||
be32_to_cpu(XFS_BUF_TO_AGF(args->agbp)->agf_length));
|
||||
ASSERT(acur->rec_bno + acur->rec_len <= be32_to_cpu(agf->agf_length));
|
||||
|
||||
error = xfs_alloc_fixup_trees(acur->cnt, acur->bnolt, acur->rec_bno,
|
||||
acur->rec_len, acur->bno, acur->len, 0);
|
||||
@@ -1027,6 +1027,7 @@ xfs_alloc_ag_vextent_small(
|
||||
xfs_extlen_t *flenp, /* result length */
|
||||
int *stat) /* status: 0-freelist, 1-normal/none */
|
||||
{
|
||||
struct xfs_agf *agf = args->agbp->b_addr;
|
||||
int error = 0;
|
||||
xfs_agblock_t fbno = NULLAGBLOCK;
|
||||
xfs_extlen_t flen = 0;
|
||||
@@ -1055,8 +1056,7 @@ xfs_alloc_ag_vextent_small(
|
||||
|
||||
if (args->minlen != 1 || args->alignment != 1 ||
|
||||
args->resv == XFS_AG_RESV_AGFL ||
|
||||
(be32_to_cpu(XFS_BUF_TO_AGF(args->agbp)->agf_flcount) <=
|
||||
args->minleft))
|
||||
be32_to_cpu(agf->agf_flcount) <= args->minleft)
|
||||
goto out;
|
||||
|
||||
error = xfs_alloc_get_freelist(args->tp, args->agbp, &fbno, 0);
|
||||
@@ -1080,9 +1080,7 @@ xfs_alloc_ag_vextent_small(
|
||||
}
|
||||
*fbnop = args->agbno = fbno;
|
||||
*flenp = args->len = 1;
|
||||
if (XFS_IS_CORRUPT(args->mp,
|
||||
fbno >= be32_to_cpu(
|
||||
XFS_BUF_TO_AGF(args->agbp)->agf_length))) {
|
||||
if (XFS_IS_CORRUPT(args->mp, fbno >= be32_to_cpu(agf->agf_length))) {
|
||||
error = -EFSCORRUPTED;
|
||||
goto error;
|
||||
}
|
||||
@@ -1204,6 +1202,7 @@ STATIC int /* error */
|
||||
xfs_alloc_ag_vextent_exact(
|
||||
xfs_alloc_arg_t *args) /* allocation argument structure */
|
||||
{
|
||||
struct xfs_agf __maybe_unused *agf = args->agbp->b_addr;
|
||||
xfs_btree_cur_t *bno_cur;/* by block-number btree cursor */
|
||||
xfs_btree_cur_t *cnt_cur;/* by count btree cursor */
|
||||
int error;
|
||||
@@ -1282,8 +1281,7 @@ xfs_alloc_ag_vextent_exact(
|
||||
*/
|
||||
cnt_cur = xfs_allocbt_init_cursor(args->mp, args->tp, args->agbp,
|
||||
args->agno, XFS_BTNUM_CNT);
|
||||
ASSERT(args->agbno + args->len <=
|
||||
be32_to_cpu(XFS_BUF_TO_AGF(args->agbp)->agf_length));
|
||||
ASSERT(args->agbno + args->len <= be32_to_cpu(agf->agf_length));
|
||||
error = xfs_alloc_fixup_trees(cnt_cur, bno_cur, fbno, flen, args->agbno,
|
||||
args->len, XFSA_FIXUP_BNO_OK);
|
||||
if (error) {
|
||||
@@ -1662,6 +1660,7 @@ STATIC int /* error */
|
||||
xfs_alloc_ag_vextent_size(
|
||||
xfs_alloc_arg_t *args) /* allocation argument structure */
|
||||
{
|
||||
struct xfs_agf *agf = args->agbp->b_addr;
|
||||
xfs_btree_cur_t *bno_cur; /* cursor for bno btree */
|
||||
xfs_btree_cur_t *cnt_cur; /* cursor for cnt btree */
|
||||
int error; /* error result */
|
||||
@@ -1852,8 +1851,7 @@ restart:
|
||||
args->agbno = rbno;
|
||||
if (XFS_IS_CORRUPT(args->mp,
|
||||
args->agbno + args->len >
|
||||
be32_to_cpu(
|
||||
XFS_BUF_TO_AGF(args->agbp)->agf_length))) {
|
||||
be32_to_cpu(agf->agf_length))) {
|
||||
error = -EFSCORRUPTED;
|
||||
goto error0;
|
||||
}
|
||||
@@ -2425,7 +2423,7 @@ xfs_agfl_reset(
|
||||
struct xfs_perag *pag)
|
||||
{
|
||||
struct xfs_mount *mp = tp->t_mountp;
|
||||
struct xfs_agf *agf = XFS_BUF_TO_AGF(agbp);
|
||||
struct xfs_agf *agf = agbp->b_addr;
|
||||
|
||||
ASSERT(pag->pagf_agflreset);
|
||||
trace_xfs_agfl_reset(mp, agf, 0, _RET_IP_);
|
||||
@@ -2656,7 +2654,7 @@ xfs_alloc_get_freelist(
|
||||
xfs_agblock_t *bnop, /* block address retrieved from freelist */
|
||||
int btreeblk) /* destination is a AGF btree */
|
||||
{
|
||||
xfs_agf_t *agf; /* a.g. freespace structure */
|
||||
struct xfs_agf *agf = agbp->b_addr;
|
||||
xfs_buf_t *agflbp;/* buffer for a.g. freelist structure */
|
||||
xfs_agblock_t bno; /* block number returned */
|
||||
__be32 *agfl_bno;
|
||||
@@ -2668,7 +2666,6 @@ xfs_alloc_get_freelist(
|
||||
/*
|
||||
* Freelist is empty, give up.
|
||||
*/
|
||||
agf = XFS_BUF_TO_AGF(agbp);
|
||||
if (!agf->agf_flcount) {
|
||||
*bnop = NULLAGBLOCK;
|
||||
return 0;
|
||||
@@ -2746,7 +2743,7 @@ xfs_alloc_log_agf(
|
||||
sizeof(xfs_agf_t)
|
||||
};
|
||||
|
||||
trace_xfs_agf(tp->t_mountp, XFS_BUF_TO_AGF(bp), fields, _RET_IP_);
|
||||
trace_xfs_agf(tp->t_mountp, bp->b_addr, fields, _RET_IP_);
|
||||
|
||||
xfs_trans_buf_set_type(tp, bp, XFS_BLFT_AGF_BUF);
|
||||
|
||||
@@ -2784,18 +2781,15 @@ xfs_alloc_put_freelist(
|
||||
xfs_agblock_t bno, /* block being freed */
|
||||
int btreeblk) /* block came from a AGF btree */
|
||||
{
|
||||
xfs_agf_t *agf; /* a.g. freespace structure */
|
||||
struct xfs_mount *mp = tp->t_mountp;
|
||||
struct xfs_agf *agf = agbp->b_addr;
|
||||
__be32 *blockp;/* pointer to array entry */
|
||||
int error;
|
||||
int logflags;
|
||||
xfs_mount_t *mp; /* mount structure */
|
||||
xfs_perag_t *pag; /* per allocation group data */
|
||||
__be32 *agfl_bno;
|
||||
int startoff;
|
||||
|
||||
agf = XFS_BUF_TO_AGF(agbp);
|
||||
mp = tp->t_mountp;
|
||||
|
||||
if (!agflbp && (error = xfs_alloc_read_agfl(mp, tp,
|
||||
be32_to_cpu(agf->agf_seqno), &agflbp)))
|
||||
return error;
|
||||
@@ -2839,13 +2833,12 @@ xfs_agf_verify(
|
||||
struct xfs_buf *bp)
|
||||
{
|
||||
struct xfs_mount *mp = bp->b_mount;
|
||||
struct xfs_agf *agf = XFS_BUF_TO_AGF(bp);
|
||||
struct xfs_agf *agf = bp->b_addr;
|
||||
|
||||
if (xfs_sb_version_hascrc(&mp->m_sb)) {
|
||||
if (!uuid_equal(&agf->agf_uuid, &mp->m_sb.sb_meta_uuid))
|
||||
return __this_address;
|
||||
if (!xfs_log_check_lsn(mp,
|
||||
be64_to_cpu(XFS_BUF_TO_AGF(bp)->agf_lsn)))
|
||||
if (!xfs_log_check_lsn(mp, be64_to_cpu(agf->agf_lsn)))
|
||||
return __this_address;
|
||||
}
|
||||
|
||||
@@ -2931,6 +2924,7 @@ xfs_agf_write_verify(
|
||||
{
|
||||
struct xfs_mount *mp = bp->b_mount;
|
||||
struct xfs_buf_log_item *bip = bp->b_log_item;
|
||||
struct xfs_agf *agf = bp->b_addr;
|
||||
xfs_failaddr_t fa;
|
||||
|
||||
fa = xfs_agf_verify(bp);
|
||||
@@ -2943,7 +2937,7 @@ xfs_agf_write_verify(
|
||||
return;
|
||||
|
||||
if (bip)
|
||||
XFS_BUF_TO_AGF(bp)->agf_lsn = cpu_to_be64(bip->bli_item.li_lsn);
|
||||
agf->agf_lsn = cpu_to_be64(bip->bli_item.li_lsn);
|
||||
|
||||
xfs_buf_update_cksum(bp, XFS_AGF_CRC_OFF);
|
||||
}
|
||||
@@ -3011,7 +3005,7 @@ xfs_alloc_read_agf(
|
||||
return error;
|
||||
ASSERT(!(*bpp)->b_error);
|
||||
|
||||
agf = XFS_BUF_TO_AGF(*bpp);
|
||||
agf = (*bpp)->b_addr;
|
||||
pag = xfs_perag_get(mp, agno);
|
||||
if (!pag->pagf_init) {
|
||||
pag->pagf_freeblks = be32_to_cpu(agf->agf_freeblks);
|
||||
@@ -3292,6 +3286,7 @@ __xfs_free_extent(
|
||||
struct xfs_buf *agbp;
|
||||
xfs_agnumber_t agno = XFS_FSB_TO_AGNO(mp, bno);
|
||||
xfs_agblock_t agbno = XFS_FSB_TO_AGBNO(mp, bno);
|
||||
struct xfs_agf *agf;
|
||||
int error;
|
||||
unsigned int busy_flags = 0;
|
||||
|
||||
@@ -3305,6 +3300,7 @@ __xfs_free_extent(
|
||||
error = xfs_free_extent_fix_freelist(tp, agno, &agbp);
|
||||
if (error)
|
||||
return error;
|
||||
agf = agbp->b_addr;
|
||||
|
||||
if (XFS_IS_CORRUPT(mp, agbno >= mp->m_sb.sb_agblocks)) {
|
||||
error = -EFSCORRUPTED;
|
||||
@@ -3312,9 +3308,7 @@ __xfs_free_extent(
|
||||
}
|
||||
|
||||
/* validate the extent size is legal now we have the agf locked */
|
||||
if (XFS_IS_CORRUPT(mp,
|
||||
agbno + len >
|
||||
be32_to_cpu(XFS_BUF_TO_AGF(agbp)->agf_length))) {
|
||||
if (XFS_IS_CORRUPT(mp, agbno + len > be32_to_cpu(agf->agf_length))) {
|
||||
error = -EFSCORRUPTED;
|
||||
goto err;
|
||||
}
|
||||
|
Reference in New Issue
Block a user