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
Date: Thu Mar 2 15:08:14 PST 2006
Workarea: attica.americas.sgi.com:/data/lwork/attica2/alkirkco/XFS/2.6.x-xfs
Inspected by: olaf,gwehrman,dgc,nathans,felixb
The following file(s) were checked into:
bonnie.engr.sgi.com:/isms/linux/2.6.x-xfs
Modid: xfs-linux:xfs-kern:207390a
fs/xfs/xfsidbg.c - 1.293 - changed
http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfsidbg.c.diff?r1=text&tr1=1.293&r2=text&tr2=1.292&f=h
- Replace indexed extent assignment with a call to xfs_iext_get_ext()
fs/xfs/xfs_bmap_btree.c - 1.151 - changed
http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_bmap_btree.c.diff?r1=text&tr1=1.151&r2=text&tr2=1.150&f=h
- Change first parameter of xfs_check_nostate_extents() from an extent
pointer
(*xfs_bmbt_rec_t*) to two parameters: 1) inode fork pointer
(xfs_ifork_t*),
and 2) the index of the extent (xfs_extnum_t). These new parameters
are needed
for the call to xfs_iext_get_ext() in xfs_check_nostate_extents().
- Replace indexed extent assignment with a call to xfs_iext_get_ext()
fs/xfs/xfs_inode.c - 1.426 - changed
http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_inode.c.diff?r1=text&tr1=1.426&r2=text&tr2=1.425&f=h
- Add 10 new subroutines to re-organize the in-core extent management
code:
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()
- Replace indexed extent assignments with calls to xfs_iext_get_ext()
- Replace extent record pointer arithmetic (ep++, ep--, base + lastx,..)
with calls to xfs_iext_get_ext()
- Modify xfs_validate_extents() parameters so that xfs_iext_get_ext()
can be called from xfs_validate_extents()
- Update comments to remove the idea of a single "extent list" and
replace with "extent record" terminology instead
fs/xfs/xfs_inode.h - 1.208 - changed
http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_inode.h.diff?r1=text&tr1=1.208&r2=text&tr2=1.207&f=h
- Add prototypes for new xfs_iext_* functions in xfs_inode.c.
- Remove XFS_MAX_INCORE_EXTENTS macro, which is 1) never used,
and 2) a bogus number.
fs/xfs/xfs_bmap.h - 1.93 - changed
http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_bmap.h.diff?r1=text&tr1=1.93&r2=text&tr2=1.92&f=h
- Change first parameter of xfs_check_nostate_extents() from an extent
pointer
(*xfs_bmbt_rec_t*) to two parameters: 1) inode fork pointer
(xfs_ifork_t*),
and 2) the index of the extent (xfs_extnum_t). These new parameters
are needed
for the call to xfs_iext_get_ext() in xfs_check_nostate_extents().
fs/xfs/xfs_bmap.c - 1.340 - changed
http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_bmap.c.diff?r1=text&tr1=1.340&r2=text&tr2=1.339&f=h
- Replace indexed extent assignments with calls to xfs_iext_get_ext()
- Remove xfs_bmap_insert_exlist() and xfs_bmap_delete_exlist() and
replace all calls by xfs_iext_insert() and xfs_iext_remove(),
respectively.
- Update documentation and replace "extent list" terminology with
"extent record"
fs/xfs/quota/xfs_qm.c - 1.35 - changed
http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/quota/xfs_qm.c.diff?r1=text&tr1=1.35&r2=text&tr2=1.34&f=h
- Replace indexed extent assignment with a call to xfs_iext_get_ext()
fs/xfs/linux-2.6/xfs_ksyms.c - 1.39 - changed
http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/linux-2.6/xfs_ksyms.c.diff?r1=text&tr1=1.39&r2=text&tr2=1.38&f=h
- Export new functions needed by CXFS 4.1:
xfs_iext_add()
xfs_iext_destroy()
xfs_iext_get_ext()
xfs_iext_insert()
xfs_iext_remove()
fs/xfs/linux-2.4/xfs_ksyms.c - 1.34 - changed
http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/linux-2.4/xfs_ksyms.c.diff?r1=text&tr1=1.34&r2=text&tr2=1.33&f=h
- Export new functions needed by CXFS 4.1:
xfs_iext_add()
xfs_iext_destroy()
xfs_iext_get_ext()
xfs_iext_insert()
xfs_iext_remove()
|