1. 09 6月, 2006 1 次提交
  2. 11 4月, 2006 1 次提交
  3. 17 3月, 2006 2 次提交
    • N
      [XFS] Fix an infinite loop issue in bulkstat when a corrupt inode is · b12dd342
      Nathan Scott 提交于
      detected.  Thanks to Roger Willcocks.
      
      SGI-PV: 951054
      SGI-Modid: xfs-linux-melb:xfs-kern:25477a
      Signed-off-by: NNathan Scott <nathans@sgi.com>
      b12dd342
    • M
      [XFS] There are a few problems with the new · 8867bc9b
      Mandy Kirkconnell 提交于
      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: NMandy Kirkconnell <alkirkco@sgi.com>
      Signed-off-by: NNathan Scott <nathans@sgi.com>
      8867bc9b
  4. 14 3月, 2006 2 次提交
    • M
      [XFS] 929045 567344 This mod introduces multi-level in-core file extent · 0293ce3a
      Mandy Kirkconnell 提交于
      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: NMandy Kirkconnell <alkirkco@sgi.com>
      Signed-off-by: NNathan Scott <nathans@sgi.com>
      0293ce3a
    • M
      [XFS] 929045 567344 This mod re-organizes some of the in-core file extent · 4eea22f0
      Mandy Kirkconnell 提交于
      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: NMandy Kirkconnell <alkirkco@sgi.com>
      Signed-off-by: NNathan Scott <nathans@sgi.com>
      4eea22f0
  5. 11 1月, 2006 2 次提交
  6. 02 11月, 2005 4 次提交
  7. 21 6月, 2005 2 次提交
  8. 06 5月, 2005 1 次提交
  9. 17 4月, 2005 1 次提交
    • L
      Linux-2.6.12-rc2 · 1da177e4
      Linus Torvalds 提交于
      Initial git repository build. I'm not bothering with the full history,
      even though we have it. We can create a separate "historical" git
      archive of that later if we want to, and in the meantime it's about
      3.2GB when imported into git - space that would just make the early
      git days unnecessarily complicated, when we don't have a lot of good
      infrastructure for it.
      
      Let it rip!
      1da177e4