[XFS] 929045 567344 This mod re-organizes some of the in-core file extent
code to prepare for an upcoming mod which will introduce multi-level in-core extent allocations. Although the in-core extent management is using a new code path in this mod, the functionality remains the same. Major changes include: - Introduce 10 new subroutines which re-orgainze the existing code but do NOT change functionality: xfs_iext_get_ext() xfs_iext_insert() xfs_iext_add() xfs_iext_remove() xfs_iext_remove_inline() xfs_iext_remove_direct() xfs_iext_realloc_direct() xfs_iext_direct_to_inline() xfs_iext_inline_to_direct() xfs_iext_destroy() - Remove 2 subroutines (functionality moved to new subroutines above): xfs_iext_realloc() -replaced by xfs_iext_add() and xfs_iext_remove() xfs_bmap_insert_exlist() - replaced by xfs_iext_insert() xfs_bmap_delete_exlist() - replaced by xfs_iext_remove() - Replace all hard-coded (indexed) extent assignments with a call to xfs_iext_get_ext() - Replace all extent record pointer arithmetic (ep++, ep--, base + lastx,..) with calls to xfs_iext_get_ext() - Update comments to remove the idea of a single "extent list" and introduce "extent record" terminology instead SGI-PV: 928864 SGI-Modid: xfs-linux-melb:xfs-kern:207390a Signed-off-by: Mandy Kirkconnell <alkirkco@sgi.com> Signed-off-by: Nathan Scott <nathans@sgi.com>
This commit is contained in:
committed by
Nathan Scott
parent
9f989c9455
commit
4eea22f01b
@ -1704,9 +1704,9 @@ xfs_qm_get_rtblks(
|
||||
xfs_qcnt_t *O_rtblks)
|
||||
{
|
||||
xfs_filblks_t rtblks; /* total rt blks */
|
||||
xfs_extnum_t idx; /* extent record index */
|
||||
xfs_ifork_t *ifp; /* inode fork pointer */
|
||||
xfs_extnum_t nextents; /* number of extent entries */
|
||||
xfs_bmbt_rec_t *base; /* base of extent array */
|
||||
xfs_bmbt_rec_t *ep; /* pointer to an extent entry */
|
||||
int error;
|
||||
|
||||
@ -1717,10 +1717,11 @@ xfs_qm_get_rtblks(
|
||||
return error;
|
||||
}
|
||||
rtblks = 0;
|
||||
nextents = ifp->if_bytes / sizeof(xfs_bmbt_rec_t);
|
||||
base = &ifp->if_u1.if_extents[0];
|
||||
for (ep = base; ep < &base[nextents]; ep++)
|
||||
nextents = ifp->if_bytes / (uint)sizeof(xfs_bmbt_rec_t);
|
||||
for (idx = 0; idx < nextents; idx++) {
|
||||
ep = xfs_iext_get_ext(ifp, idx);
|
||||
rtblks += xfs_bmbt_get_blockcount(ep);
|
||||
}
|
||||
*O_rtblks = (xfs_qcnt_t)rtblks;
|
||||
return 0;
|
||||
}
|
||||
|
Reference in New Issue
Block a user