xfs: use XFS_BMAP_BMDR_SPACE vs. XFS_BROOT_SIZE_ADJ
XFS_BROOT_SIZE_ADJ is an undocumented macro which accounts for the difference in size between the on-disk and in-core btree root. It's much clearer to just use the newly-added XFS_BMAP_BMDR_SPACE macro which gives us the on-disk size directly. In one case, we must test that the if_broot exists before applying the macro, however. Signed-off-by: Eric Sandeen <sandeen@redhat.com> Reviewed-by: Dave Chinner <dchinner@redhat.com> Reviewed-by: Ben Myers <bpm@sgi.com> Signed-off-by: Ben Myers <bpm@sgi.com>
This commit is contained in:
parent
83e782e1a1
commit
a69c7c0772
|
@ -132,9 +132,6 @@ typedef enum xfs_dinode_fmt {
|
|||
#define XFS_LITINO(mp, version) \
|
||||
((int)(((mp)->m_sb.sb_inodesize) - xfs_dinode_size(version)))
|
||||
|
||||
#define XFS_BROOT_SIZE_ADJ(ip) \
|
||||
(XFS_BMBT_BLOCK_LEN((ip)->i_mount) - sizeof(xfs_bmdr_block_t))
|
||||
|
||||
/*
|
||||
* Inode data & attribute fork sizes, per inode.
|
||||
*/
|
||||
|
|
|
@ -2156,8 +2156,8 @@ xfs_iroot_realloc(
|
|||
np = (char *)XFS_BMAP_BROOT_PTR_ADDR(mp, ifp->if_broot, 1,
|
||||
(int)new_size);
|
||||
ifp->if_broot_bytes = (int)new_size;
|
||||
ASSERT(ifp->if_broot_bytes <=
|
||||
XFS_IFORK_SIZE(ip, whichfork) + XFS_BROOT_SIZE_ADJ(ip));
|
||||
ASSERT(XFS_BMAP_BMDR_SPACE(ifp->if_broot) <=
|
||||
XFS_IFORK_SIZE(ip, whichfork));
|
||||
memmove(np, op, cur_max * (uint)sizeof(xfs_dfsbno_t));
|
||||
return;
|
||||
}
|
||||
|
@ -2210,8 +2210,9 @@ xfs_iroot_realloc(
|
|||
kmem_free(ifp->if_broot);
|
||||
ifp->if_broot = new_broot;
|
||||
ifp->if_broot_bytes = (int)new_size;
|
||||
ASSERT(ifp->if_broot_bytes <=
|
||||
XFS_IFORK_SIZE(ip, whichfork) + XFS_BROOT_SIZE_ADJ(ip));
|
||||
if (ifp->if_broot)
|
||||
ASSERT(XFS_BMAP_BMDR_SPACE(ifp->if_broot) <=
|
||||
XFS_IFORK_SIZE(ip, whichfork));
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -2522,9 +2523,8 @@ xfs_iflush_fork(
|
|||
if ((iip->ili_fields & brootflag[whichfork]) &&
|
||||
(ifp->if_broot_bytes > 0)) {
|
||||
ASSERT(ifp->if_broot != NULL);
|
||||
ASSERT(ifp->if_broot_bytes <=
|
||||
(XFS_IFORK_SIZE(ip, whichfork) +
|
||||
XFS_BROOT_SIZE_ADJ(ip)));
|
||||
ASSERT(XFS_BMAP_BMDR_SPACE(ifp->if_broot) <=
|
||||
XFS_IFORK_SIZE(ip, whichfork));
|
||||
xfs_bmbt_to_bmdr(mp, ifp->if_broot, ifp->if_broot_bytes,
|
||||
(xfs_bmdr_block_t *)cp,
|
||||
XFS_DFORK_SIZE(dip, mp, whichfork));
|
||||
|
|
Loading…
Reference in a new issue