linux/fs/xfs
Mandy Kirkconnell 0293ce3a9f [XFS] 929045 567344 This mod introduces multi-level in-core file extent
functionality, building upon the new layout introduced in mod
xfs-linux:xfs-kern:207390a.  The new multi-level extent allocations are
only required for heavily fragmented files, so the old-style linear extent
list is used on files until the extents reach a pre-determined size of 4k.
4k buffers are used because this is the system page size on Linux i386 and
systems with larger page sizes don't seem to gain much, if anything, by
using their native page size as the extent buffer size. Also, using 4k
extent buffers everywhere provides a consistent interface for CXFS across
different platforms.  The 4k extent buffers are managed by an indirection
array (xfs_ext_irec_t) which is basically just a pointer array with a bit
of extra information to keep track of the number of extents in each buffer
as well as the extent offset of each buffer.  Major changes include:  -
Add multi-level in-core file extent functionality to the xfs_iext_  
subroutines introduced in mod:	xfs-linux:xfs-kern:207390a  - Introduce 13
new subroutines which add functionality for multi-level   in-core file
extents:	 xfs_iext_add_indirect_multi()	      
xfs_iext_remove_indirect()	   xfs_iext_realloc_indirect()	      
xfs_iext_indirect_to_direct()	      xfs_iext_bno_to_irec()	    
xfs_iext_idx_to_irec()	       xfs_iext_irec_init()	   
xfs_iext_irec_new()	    xfs_iext_irec_remove()	  
xfs_iext_irec_compact() 	xfs_iext_irec_compact_pages()	     
xfs_iext_irec_compact_full()	     xfs_iext_irec_update_extoffs()

SGI-PV: 928864
SGI-Modid: xfs-linux-melb:xfs-kern:207393a

Signed-off-by: Mandy Kirkconnell <alkirkco@sgi.com>
Signed-off-by: Nathan Scott <nathans@sgi.com>
2006-03-14 13:30:23 +11:00
..
linux-2.6 [XFS] using a spinlock per cpu for superblock counter exclusion results in 2006-03-14 13:29:16 +11:00
quota [XFS] 929045 567344 This mod re-organizes some of the in-core file extent 2006-03-14 13:29:52 +11:00
support [XFS] UUID endianess fix. uu_timelow is a 32bit field and needs to be 2006-03-14 13:24:46 +11:00
Kbuild kbuild/xfs: introduce fs/xfs/Kbuild 2006-01-09 20:48:03 +01:00
Kconfig [XFS] fix XFS quota for modular XFS builds 2005-11-03 13:55:06 +11:00
Makefile [XFS] Sort out some cosmetic differences between XFS trees. 2005-09-05 11:47:01 +10:00
Makefile-linux-2.6 [XFS] Cleanup cosmetic differences between source trees. 2005-11-03 16:14:31 +11:00
xfs_acl.c [PATCH] capable/capability.h (fs/) 2006-01-11 18:42:13 -08:00
xfs_acl.h [XFS] Update license/copyright notices to match the prefered SGI 2005-11-02 14:58:39 +11:00
xfs_ag.h [XFS] Endianess annotations for various allocator data structures 2005-11-02 15:11:25 +11:00
xfs_alloc_btree.c [XFS] Endianess annotations for various allocator data structures 2005-11-02 15:11:25 +11:00
xfs_alloc_btree.h [XFS] Endianess annotations for various allocator data structures 2005-11-02 15:11:25 +11:00
xfs_alloc.c [XFS] Endianess annotations for various allocator data structures 2005-11-02 15:11:25 +11:00
xfs_alloc.h [XFS] Update license/copyright notices to match the prefered SGI 2005-11-02 14:58:39 +11:00
xfs_arch.h [XFS] Merge in trivial changes, sync up headers with userspace 2006-01-12 10:29:53 +11:00
xfs_attr_leaf.c [XFS] Reverse the sense of COMPAT_ATTR and ATTR2, keeps it simple and 2006-01-11 15:32:01 +11:00
xfs_attr_leaf.h [XFS] Merge in trivial changes, sync up headers with userspace 2006-01-12 10:29:53 +11:00
xfs_attr_sf.h [XFS] Update license/copyright notices to match the prefered SGI 2005-11-02 14:58:39 +11:00
xfs_attr.c [PATCH] capable/capability.h (fs/) 2006-01-11 18:42:13 -08:00
xfs_attr.h [XFS] Update license/copyright notices to match the prefered SGI 2005-11-02 14:58:39 +11:00
xfs_behavior.c [XFS] Update license/copyright notices to match the prefered SGI 2005-11-02 14:58:39 +11:00
xfs_behavior.h [XFS] Update license/copyright notices to match the prefered SGI 2005-11-02 14:58:39 +11:00
xfs_bit.c [XFS] Update license/copyright notices to match the prefered SGI 2005-11-02 14:58:39 +11:00
xfs_bit.h [XFS] Update license/copyright notices to match the prefered SGI 2005-11-02 14:58:39 +11:00
xfs_bmap_btree.c [XFS] 929045 567344 This mod re-organizes some of the in-core file extent 2006-03-14 13:29:52 +11:00
xfs_bmap_btree.h [XFS] 929045 567344 This mod introduces multi-level in-core file extent 2006-03-14 13:30:23 +11:00
xfs_bmap.c [XFS] 929045 567344 This mod introduces multi-level in-core file extent 2006-03-14 13:30:23 +11:00
xfs_bmap.h [XFS] 929045 567344 This mod introduces multi-level in-core file extent 2006-03-14 13:30:23 +11:00
xfs_btree.c [XFS] Endianess annotations for various allocator data structures 2005-11-02 15:11:25 +11:00
xfs_btree.h [XFS] Endianess annotations for various allocator data structures 2005-11-02 15:11:25 +11:00
xfs_buf_item.c [XFS] Update license/copyright notices to match the prefered SGI 2005-11-02 14:58:39 +11:00
xfs_buf_item.h [XFS] Update license/copyright notices to match the prefered SGI 2005-11-02 14:58:39 +11:00
xfs_cap.h [XFS] Update license/copyright notices to match the prefered SGI 2005-11-02 14:58:39 +11:00
xfs_clnt.h [XFS] XFS propagates MS_NOATIME through two levels internally but doesn't 2006-03-14 13:05:30 +11:00
xfs_da_btree.c [XFS] Fixed the inconsistency between attribute b-tree intermidiate node 2005-11-03 10:31:47 +11:00
xfs_da_btree.h [XFS] Update license/copyright notices to match the prefered SGI 2005-11-02 14:58:39 +11:00
xfs_dfrag.c [XFS] add helper to get xfs_inode from vnode 2006-01-11 20:58:44 +11:00
xfs_dfrag.h [XFS] Update license/copyright notices to match the prefered SGI 2005-11-02 14:58:39 +11:00
xfs_dinode.h [XFS] Sort out cosmetic differences between user and kernel copies of some 2006-01-11 15:33:02 +11:00
xfs_dir2_block.c [XFS] Update license/copyright notices to match the prefered SGI 2005-11-02 14:58:39 +11:00
xfs_dir2_block.h [XFS] Update license/copyright notices to match the prefered SGI 2005-11-02 14:58:39 +11:00
xfs_dir2_data.c [XFS] Update license/copyright notices to match the prefered SGI 2005-11-02 14:58:39 +11:00
xfs_dir2_data.h [XFS] Update license/copyright notices to match the prefered SGI 2005-11-02 14:58:39 +11:00
xfs_dir2_leaf.c [XFS] Update license/copyright notices to match the prefered SGI 2005-11-02 14:58:39 +11:00
xfs_dir2_leaf.h [XFS] Update license/copyright notices to match the prefered SGI 2005-11-02 14:58:39 +11:00
xfs_dir2_node.c [XFS] Update license/copyright notices to match the prefered SGI 2005-11-02 14:58:39 +11:00
xfs_dir2_node.h [XFS] Update license/copyright notices to match the prefered SGI 2005-11-02 14:58:39 +11:00
xfs_dir2_sf.c [XFS] silence gcc4 warnings. the directory ones are wrong because of 2005-11-02 15:06:18 +11:00
xfs_dir2_sf.h [XFS] Update license/copyright notices to match the prefered SGI 2005-11-02 14:58:39 +11:00
xfs_dir2_trace.c [XFS] Update license/copyright notices to match the prefered SGI 2005-11-02 14:58:39 +11:00
xfs_dir2_trace.h [XFS] Update license/copyright notices to match the prefered SGI 2005-11-02 14:58:39 +11:00
xfs_dir2.c [XFS] Update license/copyright notices to match the prefered SGI 2005-11-02 14:58:39 +11:00
xfs_dir2.h [XFS] Make headers compile for more compiler variants; minor cleanup. 2006-03-14 13:20:33 +11:00
xfs_dir_leaf.c return statement cleanup - kill pointless parentheses 2006-01-15 02:37:08 +01:00
xfs_dir_leaf.h [XFS] Merge in trivial changes, sync up headers with userspace 2006-01-12 10:29:53 +11:00
xfs_dir_sf.h [XFS] Make headers compile for more compiler variants; minor cleanup. 2006-03-14 13:20:33 +11:00
xfs_dir.c [XFS] Reverse the sense of COMPAT_ATTR and ATTR2, keeps it simple and 2006-01-11 15:32:01 +11:00
xfs_dir.h [XFS] Sort out cosmetic differences between user and kernel copies of some 2006-01-11 15:33:02 +11:00
xfs_dmapi.h [PATCH] mutex subsystem, semaphore to mutex: VFS, ->i_sem 2006-01-09 15:59:24 -08:00
xfs_dmops.c [XFS] Update license/copyright notices to match the prefered SGI 2005-11-02 14:58:39 +11:00
xfs_error.c [XFS] Merge in trivial changes, sync up headers with userspace 2006-01-12 10:29:53 +11:00
xfs_error.h [XFS] Merge in trivial changes, sync up headers with userspace 2006-01-12 10:29:53 +11:00
xfs_extfree_item.c [XFS] Update license/copyright notices to match the prefered SGI 2005-11-02 14:58:39 +11:00
xfs_extfree_item.h [XFS] Update license/copyright notices to match the prefered SGI 2005-11-02 14:58:39 +11:00
xfs_fs.h [XFS] Sort out cosmetic differences between user and kernel copies of some 2006-01-11 15:33:02 +11:00
xfs_fsops.c [XFS] On machines with more than 8 cpus, when running parallel I/O 2006-03-14 13:13:09 +11:00
xfs_fsops.h [XFS] Write log dummy record when freezing filesystem 2006-01-11 15:30:08 +11:00
xfs_ialloc_btree.c [XFS] Endianess annotations for various allocator data structures 2005-11-02 15:11:25 +11:00
xfs_ialloc_btree.h [XFS] Endianess annotations for various allocator data structures 2005-11-02 15:11:25 +11:00
xfs_ialloc.c [XFS] Endianess annotations for various allocator data structures 2005-11-02 15:11:25 +11:00
xfs_ialloc.h [XFS] Update license/copyright notices to match the prefered SGI 2005-11-02 14:58:39 +11:00
xfs_iget.c [XFS] add helper to get xfs_inode from vnode 2006-01-11 20:58:44 +11:00
xfs_imap.h [XFS] Update license/copyright notices to match the prefered SGI 2005-11-02 14:58:39 +11:00
xfs_inode_item.c [XFS] Merge in trivial changes, sync up headers with userspace 2006-01-12 10:29:53 +11:00
xfs_inode_item.h [XFS] Update license/copyright notices to match the prefered SGI 2005-11-02 14:58:39 +11:00
xfs_inode.c [XFS] 929045 567344 This mod introduces multi-level in-core file extent 2006-03-14 13:30:23 +11:00
xfs_inode.h [XFS] 929045 567344 This mod introduces multi-level in-core file extent 2006-03-14 13:30:23 +11:00
xfs_inum.h [XFS] Update license/copyright notices to match the prefered SGI 2005-11-02 14:58:39 +11:00
xfs_iocore.c [XFS] Update license/copyright notices to match the prefered SGI 2005-11-02 14:58:39 +11:00
xfs_iomap.c Merge HEAD from oss.sgi.com:/oss/git/linux-2.6.git 2006-01-12 13:34:47 +11:00
xfs_iomap.h [XFS] Fix potential overflow in xfs_iomap_t delta for very large extents 2005-11-25 16:41:33 +11:00
xfs_itable.c [XFS] Fix some build fallout from atime changes. 2006-01-11 21:03:04 +11:00
xfs_itable.h [XFS] Update license/copyright notices to match the prefered SGI 2005-11-02 14:58:39 +11:00
xfs_log_priv.h [XFS] remove XFS_LOG_RES_DEBUG and turn on the res history all the time to 2006-01-11 21:02:47 +11:00
xfs_log_recover.c [XFS] Fix quotaoff logitem for project quota, affects log recovery only. 2006-01-11 15:35:57 +11:00
xfs_log_recover.h [XFS] Update license/copyright notices to match the prefered SGI 2005-11-02 14:58:39 +11:00
xfs_log.c return statement cleanup - kill pointless parentheses 2006-01-15 02:37:08 +01:00
xfs_log.h [XFS] remove XFS_LOG_RES_DEBUG and turn on the res history all the time to 2006-01-11 21:02:47 +11:00
xfs_mac.h [XFS] Update license/copyright notices to match the prefered SGI 2005-11-02 14:58:39 +11:00
xfs_mount.c [XFS] Additional mount time superblock validation checks. 2006-03-14 13:29:32 +11:00
xfs_mount.h [XFS] using a spinlock per cpu for superblock counter exclusion results in 2006-03-14 13:29:16 +11:00
xfs_qmops.c [XFS] Update license/copyright notices to match the prefered SGI 2005-11-02 14:58:39 +11:00
xfs_quota.h [XFS] endianess annotations and cleanup for the quota code 2005-11-02 15:01:12 +11:00
xfs_refcache.h [XFS] Cleanup cosmetic differences between source trees. 2005-11-03 16:14:31 +11:00
xfs_rename.c [XFS] add helper to get xfs_inode from vnode 2006-01-11 20:58:44 +11:00
xfs_rtalloc.c [XFS] Fix a realtime allocator regression introduced by an old iget race 2006-02-28 12:29:51 +11:00
xfs_rtalloc.h [XFS] Update license/copyright notices to match the prefered SGI 2005-11-02 14:58:39 +11:00
xfs_rw.c [XFS] Complete the pagebuf -> xfs_buf naming convention transition, 2006-01-11 15:39:08 +11:00
xfs_rw.h [XFS] Update license/copyright notices to match the prefered SGI 2005-11-02 14:58:39 +11:00
xfs_sb.h [XFS] Sort out cosmetic differences between user and kernel copies of some 2006-01-11 15:33:02 +11:00
xfs_trans_ail.c [XFS] Update license/copyright notices to match the prefered SGI 2005-11-02 14:58:39 +11:00
xfs_trans_buf.c [XFS] Update license/copyright notices to match the prefered SGI 2005-11-02 14:58:39 +11:00
xfs_trans_extfree.c [XFS] Update license/copyright notices to match the prefered SGI 2005-11-02 14:58:39 +11:00
xfs_trans_inode.c [XFS] Update license/copyright notices to match the prefered SGI 2005-11-02 14:58:39 +11:00
xfs_trans_item.c return statement cleanup - kill pointless parentheses 2006-01-15 02:37:08 +01:00
xfs_trans_priv.h [XFS] Update license/copyright notices to match the prefered SGI 2005-11-02 14:58:39 +11:00
xfs_trans_space.h [XFS] Update license/copyright notices to match the prefered SGI 2005-11-02 14:58:39 +11:00
xfs_trans.c [XFS] Fix a thinko when generating a forced shutdown stack trace. 2006-01-11 15:37:00 +11:00
xfs_trans.h [XFS] Cleanup the use of zones/slabs, more consistent and allows flags to 2006-03-14 13:18:19 +11:00
xfs_types.h [XFS] Update license/copyright notices to match the prefered SGI 2005-11-02 14:58:39 +11:00
xfs_utils.c [XFS] add helper to get xfs_inode from vnode 2006-01-11 20:58:44 +11:00
xfs_utils.h [XFS] Update license/copyright notices to match the prefered SGI 2005-11-02 14:58:39 +11:00
xfs_vfsops.c [XFS] Cleanup the use of zones/slabs, more consistent and allows flags to 2006-03-14 13:18:19 +11:00
xfs_vnodeops.c return statement cleanup - kill pointless parentheses 2006-01-15 02:37:08 +01:00
xfs.h [PATCH] changing CONFIG_LOCALVERSION rebuilds too much, for no good reason 2005-11-09 07:55:57 -08:00