2
0
mirror of https://github.com/edk2-porting/linux-next.git synced 2024-12-19 18:53:52 +08:00
linux-next/fs/xfs
Mandy Kirkconnell 8867bc9bf0 [XFS] There are a few problems with the new
xfs_bmap_search_multi_extents() wrapper function that I introduced in mod
xfs-linux:xfs-kern:207393a. The function was added as a wrapper around
xfs_bmap_do_search_extents() to avoid breaking the top-of-tree CXFS
interface.  The idea of the function was basically to extract the target
extent buffer (if muli- level extent allocation mode), then call
xfs_bmap_do_search_extents() with either a pointer to the first extent in
the target buffer or a pointer to the first extent in the file, depending
on which extent mode was being used.  However, in addition to locating the
target extent record for block bno, xfs_bmap_do_search_extents() also sets
four parameters needed by the caller: *lastx, *eofp, *gotp, *prevp. 
Passing only the target extent buffer to xfs_bmap_do_search_extents()
causes *eofp to be set incorrectly if the extent is at the end of the
target list but there are actually more extents in the next er_extbuf.
Likewise, if the extent is the first one in the buffer but NOT the first
in the file, *prevp is incorrectly set to NULL.  Adding the needed
functionality to xfs_bmap_search_multi_extents() to re-set any incorrectly
set fields is redundant and makes the call to xfs_bmap_do_search_extents()
not make much sense when multi-level extent allocation mode is being used.
 This mod basically extracts the two functional components from
xfs_bmap_do_search_extents(), with the intent of obsoleting/removing
xfs_bmap_do_search_extents() after the CXFS mult-level in-core extent
changes are checked in.  The two components are:  1) The binary search to
locate the target extent record, and 2) Setting the four parameters needed
by the caller (*lastx, *eofp, *gotp, *prevp).  Component 1: I created a
new function in xfs_inode.c called xfs_iext_bno_to_ext(), which executes
the binary search to find the target extent record.
xfs_bmap_search_multi_extents() has been modified to call
xfs_iext_bno_to_ext() rather than xfs_bmap_do_search_extents().  Component
2: The parameter setting functionality has been added to
xfs_bmap_search_multi_extents(), eliminating the need for
xfs_bmap_do_search_extents().  These changes make the removal of
xfs_bmap_do_search_extents() trival once the CXFS changes are in place. 
They also allow us to maintain the current XFS interface, using the new
search function introduced in mod xfs-linux:xfs-kern:207393a.

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

Signed-off-by: Mandy Kirkconnell <alkirkco@sgi.com>
Signed-off-by: Nathan Scott <nathans@sgi.com>
2006-03-17 17:25:04 +11:00
..
linux-2.6 [XFS] Revert kiocb and vattr stack changes, theory is the AIO rework will 2006-03-14 14:07:53 +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] There are a few problems with the new 2006-03-17 17:25:04 +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] Dynamically allocate xfs_dir2_put_args_t structure to reduce stack 2006-03-14 13:32:24 +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] Dynamically allocate the xfs_dinode_core_t structure to reduce our 2006-03-14 14:07:36 +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] There are a few problems with the new 2006-03-17 17:25:04 +11:00
xfs_inode.h [XFS] There are a few problems with the new 2006-03-17 17:25:04 +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] Remove a couple of no-longer-used macros/types from XFS. 2006-03-14 13:47:32 +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] Reduce complexity in xfs_trans_init by pushing complex macros out 2006-03-14 13:32:41 +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