1. 04 4月, 2017 1 次提交
  2. 06 10月, 2016 2 次提交
  3. 05 10月, 2016 1 次提交
  4. 03 8月, 2016 1 次提交
  5. 01 6月, 2016 1 次提交
  6. 04 1月, 2016 2 次提交
  7. 12 10月, 2015 1 次提交
  8. 29 5月, 2015 1 次提交
  9. 09 1月, 2015 1 次提交
  10. 30 7月, 2014 1 次提交
  11. 24 7月, 2014 1 次提交
    • B
      xfs: support a union-based filter for eofblocks scans · f4526397
      Brian Foster 提交于
      From: Brian Foster <bfoster@redhat.com>
      
      The eofblocks scan inode filter uses intersection logic by default.
      E.g., specifying both user and group quota ids filters out inodes that
      are not covered by both the specified user and group quotas. This is
      suitable for behavior exposed to userspace.
      
      Scans that are initiated from within the kernel might require more broad
      semantics, such as scanning all inodes under each quota associated with
      an inode to alleviate low free space conditions in each.
      
      Create the XFS_EOF_FLAGS_UNION flag to support a conditional union-based
      filtering algorithm for eofblocks scans. This flag is intentionally left
      out of the valid mask as it is not supported for scans initiated from
      userspace.
      Signed-off-by: NBrian Foster <bfoster@redhat.com>
      Reviewed-by: NDave Chinner <dchinner@redhat.com>
      Signed-off-by: NDave Chinner <david@fromorbit.com>
      f4526397
  12. 24 4月, 2014 1 次提交
  13. 09 10月, 2013 1 次提交
  14. 25 9月, 2013 1 次提交
  15. 16 8月, 2013 1 次提交
  16. 13 8月, 2013 3 次提交
  17. 31 5月, 2013 2 次提交
  18. 09 11月, 2012 3 次提交
  19. 08 11月, 2012 1 次提交
  20. 09 7月, 2011 1 次提交
  21. 19 10月, 2010 2 次提交
  22. 03 9月, 2010 1 次提交
    • T
      xfs: Make fiemap work with sparse files · 9af25465
      Tao Ma 提交于
      In xfs_vn_fiemap, we set bvm_count to fi_extent_max + 1 and want
      to return fi_extent_max extents, but actually it won't work for
      a sparse file. The reason is that in xfs_getbmap we will
      calculate holes and set it in 'out', while out is malloced by
      bmv_count(fi_extent_max+1) which didn't consider holes. So in the
      worst case, if 'out' vector looks like
      [hole, extent, hole, extent, hole, ... hole, extent, hole],
      we will only return half of fi_extent_max extents.
      
      This patch add a new parameter BMV_IF_NO_HOLES for bvm_iflags.
      So with this flags, we don't use our 'out' in xfs_getbmap for
      a hole. The solution is a bit ugly by just don't increasing
      index of 'out' vector. I felt that it is not easy to skip it
      at the very beginning since we have the complicated check and
      some function like xfs_getbmapx_fix_eof_hole to adjust 'out'.
      
      Cc: Dave Chinner <david@fromorbit.com>
      Signed-off-by: NTao Ma <tao.ma@oracle.com>
      Signed-off-by: NAlex Elder <aelder@sgi.com>
      9af25465
  23. 06 3月, 2010 1 次提交
  24. 21 9月, 2009 1 次提交
  25. 08 6月, 2009 1 次提交
  26. 10 1月, 2009 1 次提交
  27. 02 12月, 2008 1 次提交
  28. 01 12月, 2008 2 次提交
    • E
      [XFS] Add new getbmap flags. · 5af317c9
      Eric Sandeen 提交于
      This adds a new output flag, BMV_OF_LAST to indicate if we've hit
      the last extent in the inode.  This potentially saves an extra call
      from userspace to see when the whole mapping is done.
      
      It also adds BMV_IF_DELALLOC and BMV_OF_DELALLOC to request, and
      indicate, delayed-allocation extents.  In this case bmv_block
      is set to -2 (-1 was already taken for HOLESTARTBLOCK; unfortunately
      these are the reverse of the in-kernel constants.)
      
      These new flags facilitate addition of the new fiemap interface.
      
      Rather than adding sh_delalloc, remove sh_unwritten & just test
      the flags directly.
      Signed-off-by: NEric Sandeen <sandeen@sandeen.net>
      Reviewed-by: NChristoph Hellwig <hch@lst.de>
      Signed-off-by: NNiv Sardi <xaiki@sgi.com>
      5af317c9
    • E
      [XFS] convert xfs_getbmap to take formatter functions · 8a7141a8
      Eric Sandeen 提交于
      Preliminary work to hook up fiemap, this allows us to pass in an
      arbitrary formatter to copy extent data back to userspace.
      
      The formatter takes info for 1 extent, a pointer to the user "thing*"
      and a pointer to a "filled" variable to indicate whether a userspace
      buffer did get filled in (for fiemap, hole "extents" are skipped).
      
      I'm just using the getbmapx struct as a "common denominator" because
      as far as I can see, it holds all info that any formatters will care
      about.
      
      ("*thing" because fiemap doesn't pass the user pointer around, but rather
      has a pointer to a fiemap info structure, and helpers associated with it)
      Signed-off-by: NEric Sandeen <sandeen@sandeen.net>
      Reviewed-by: NChristoph Hellwig <hch@lst.de>
      Signed-off-by: NNiv Sardi <xaiki@sgi.com>
      8a7141a8
  29. 28 7月, 2008 2 次提交
    • C
      [XFS] attrmulti cleanup · e182f57a
      Christoph Hellwig 提交于
      xfs_attrmulti_by_handle currently request the size based on
      sizeof(attr_multiop_t) but should be using sizeof(xfs_attr_multiop_t)
      because that is what it is dealing with. Despite beeing wrong this
      actually harmless in practice because both structures are the same size on
      all platforms.
      
      But this sizeof was the only user of struct attr_multiop so we can just
      kill it. Also move the ATTR_OP_* defines xfs_attr.h into the struct
      xfs_attr_multiop defintion in xfs_fs.h because they are only used with
      that structure, and are part of the user ABI for the
      XFS_IOC_ATTRMULTI_BY_HANDLE ioctl.
      
      SGI-PV: 983508
      
      SGI-Modid: xfs-linux-melb:xfs-kern:31352a
      Signed-off-by: NChristoph Hellwig <hch@infradead.org>
      Signed-off-by: NTim Shimmin <tes@sgi.com>
      Signed-off-by: NLachlan McIlroy <lachlan@sgi.com>
      e182f57a
    • B
      [XFS] XFS: ASCII case-insensitive support · 189f4bf2
      Barry Naujok 提交于
      Implement ASCII case-insensitive support. It's primary purpose is for
      supporting existing filesystems that already use this case-insensitive
      mode migrated from IRIX. But, if you only need ASCII-only case-insensitive
      support (ie. English only) and will never use another language, then this
      mode is perfectly adequate.
      
      ASCII-CI is implemented by generating hashes based on lower-case letters
      and doing lower-case compares. It implements a new xfs_nameops vector for
      doing the hashes and comparisons for all filename operations.
      
      To create a filesystem with this CI mode, use: # mkfs.xfs -n version=ci
      <device>
      
      SGI-PV: 981516
      SGI-Modid: xfs-linux-melb:xfs-kern:31209a
      Signed-off-by: NBarry Naujok <bnaujok@sgi.com>
      Signed-off-by: NChristoph Hellwig <hch@infradead.org>
      189f4bf2
  30. 07 2月, 2008 1 次提交
    • E
      [XFS] fix 32-bit compat ioctls for GETXFLAGS, SETXFLAGS, GETVERSION · bc58f9bb
      Eric Sandeen 提交于
      XFS_IOC_GETVERSION, XFS_IOC_GETXFLAGS and XFS_IOC_SETXFLAGS all take a
      "long" which changes size between 32 and 64 bit platforms.
      
      So, the ioctl cmds that come in from a 32-bit app aren't as expected, for
      example on GETXFLAGS,
      
      unknown cmd fd(3) cmd(80046601){t:'f';sz:4}
      
      due to the size mismatch.
      
      So, use instead the 32-bit version of the commands for compat ioctls, and
      other than that it doesn't take any more manipulation.
      
      Also, for both native and compat versions, just define them to the values
      as defined in fs.h
      
      SGI-PV: 971186
      SGI-Modid: xfs-linux-melb:xfs-kern:29849a
      Signed-off-by: NEric Sandeen <sandeen@sandeen.net>
      Signed-off-by: NLachlan McIlroy <lachlan@sgi.com>
      Signed-off-by: NTim Shimmin <tes@sgi.com>
      bc58f9bb