1. 16 3月, 2012 1 次提交
  2. 18 1月, 2012 2 次提交
    • C
      xfs: remove the i_size field in struct xfs_inode · ce7ae151
      Christoph Hellwig 提交于
      There is no fundamental need to keep an in-memory inode size copy in the XFS
      inode.  We already have the on-disk value in the dinode, and the separate
      in-memory copy that we need for regular files only in the XFS inode.
      
      Remove the xfs_inode i_size field and change the XFS_ISIZE macro to use the
      VFS inode i_size field for regular files.  Switch code that was directly
      accessing the i_size field in the xfs_inode to XFS_ISIZE, or in cases where
      we are limited to regular files direct access of the VFS inode i_size field.
      
      This also allows dropping some fairly complicated code in the write path
      which dealt with keeping the xfs_inode i_size uptodate with the VFS i_size
      that is getting updated inside ->write_end.
      
      Note that we do not bother resetting the VFS i_size when truncating a file
      that gets freed to zero as there is no point in doing so because the VFS inode
      is no longer in use at this point.  Just relax the assert in xfs_ifree to
      only check the on-disk size instead.
      Reviewed-by: NDave Chinner <dchinner@redhat.com>
      Signed-off-by: NChristoph Hellwig <hch@lst.de>
      Signed-off-by: NBen Myers <bpm@sgi.com>
      ce7ae151
    • C
      xfs: remove the if_ext_max field in struct xfs_ifork · 8096b1eb
      Christoph Hellwig 提交于
      We spent a lot of effort to maintain this field, but it always equals to the
      fork size divided by the constant size of an extent.  The prime use of it is
      to assert that the two stay in sync.  Just divide the fork size by the extent
      size in the few places that we actually use it and remove the overhead
      of maintaining it.  Also introduce a few helpers to consolidate the places
      where we actually care about the value.
      Signed-off-by: NChristoph Hellwig <hch@lst.de>
      Reviewed-by: NDave Chinner <dchinner@redhat.com>
      Signed-off-by: NBen Myers <bpm@sgi.com>
      8096b1eb
  3. 03 12月, 2011 1 次提交
    • D
      xfs: fix allocation length overflow in xfs_bmapi_write() · a99ebf43
      Dave Chinner 提交于
      When testing the new xfstests --large-fs option that does very large
      file preallocations, this assert was tripped deep in
      xfs_alloc_vextent():
      
      XFS: Assertion failed: args->minlen <= args->maxlen, file: fs/xfs/xfs_alloc.c, line: 2239
      
      The allocation was trying to allocate a zero length extent because
      the lower 32 bits of the allocation length was zero. The remaining
      length of the allocation to be done was an exact multiple of 2^32 -
      the first case I saw was at 496TB remaining to be allocated.
      
      This turns out to be an overflow when converting the allocation
      length (a 64 bit quantity) into the extent length to allocate (a 32
      bit quantity), and it requires the length to be allocated an exact
      multiple of 2^32 blocks to trip the assert.
      
      Fix it by limiting the extent lenth to allocate to MAXEXTLEN.
      Signed-off-by: NDave Chinner <dchinner@redhat.com>
      Signed-off-by: NBen Myers <bpm@sgi.com>
      Reviewed-by: NChristoph Hellwig <hch@lst.de>
      a99ebf43
  4. 12 10月, 2011 27 次提交
  5. 27 7月, 2011 1 次提交
  6. 26 7月, 2011 1 次提交
  7. 13 7月, 2011 1 次提交
    • C
      xfs: reshuffle dir2 headers · 57926640
      Christoph Hellwig 提交于
      Replace the current mess of dir2 headers with just three that have a clear
      purpose:
      
       - xfs_dir2_format.h for all format definitions, including the inline helpers
         to access our variable size structures
       - xfs_dir2_priv.h for all prototypes that are internal to the dir2 code
         and not needed by anything outside of the directory code.  For this
         purpose xfs_da_btree.c, and phase6.c in xfs_repair are considered part
         of the directory code.
       - xfs_dir2.h for the public interface to the directory code
      
      In addition to the reshuffle I have also update the comments to not only
      match the new file structure, but also to describe the directory format
      better.
      Signed-off-by: NChristoph Hellwig <hch@lst.de>
      Reviewed-by: NAlex Elder <aelder@sgi.com>
      Reviewed-by: NDave Chinner <dchinner@redhat.com>
      57926640
  8. 08 7月, 2011 2 次提交
  9. 25 5月, 2011 4 次提交