1. 29 Mar, 2009 1 commit
  2. 06 Mar, 2009 1 commit
    • Hannes Eder's avatar
      xfs: make symbols static · 3180e66d
      Hannes Eder authored
      
      Instead of the keyword 'static' the macro 'STATIC' is used, so the
      symbols are still global with CONFIG_XFS_DEBUG.
      
      Fix this sparse warnings:
        fs/xfs/linux-2.6/xfs_super.c:638:1: warning: symbol 'xfs_blkdev_get' was not declared. Should it be static?
        fs/xfs/linux-2.6/xfs_super.c:655:1: warning: symbol 'xfs_blkdev_put' was not declared. Should it be static?
        fs/xfs/linux-2.6/xfs_super.c:876:1: warning: symbol 'xfsaild' was not declared. Should it be static?
        fs/xfs/xfs_bmap.c:6208:1: warning: symbol 'xfs_check_block' was not declared. Should it be static?
        fs/xfs/xfs_dir2_leaf.c:553:1: warning: symbol 'xfs_dir2_leaf_check' was not declared. Should it be static?
      Signed-off-by: default avatarHannes Eder <hannes@hanneseder.net>
      Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
      Signed-off-by: default avatarFelix Blyakher <felixb@sgi.com>
      3180e66d
  3. 09 Jan, 2009 1 commit
    • Christoph Hellwig's avatar
      [XFS] truncate readdir offsets to signed 32 bit values · 15440319
      Christoph Hellwig authored
      
      John Stanley reported EOVERFLOW errors in readdir from his self-build
      glibc.  I traced this down to glibc enabling d_off overflow checks
      in one of the about five million different getdents implementations.
      
      In 2.6.28 Dave Woodhouse moved our readdir double buffering required
      for NFS4 readdirplus into nfsd and at that point we lost the capping
      of the directory offsets to 32 bit signed values.  Johns glibc used
      getdents64 to even implement readdir for normal 32 bit offset dirents,
      and failed with EOVERFLOW only if this happens on the first dirent in
      a getdents call.  I managed to come up with a testcase that uses
      raw getdents and does the EOVERFLOW check manually.  We always hit
      it with our last entry due to the special end of directory marker.
      
      The patch below is a dumb version of just putting back the masking,
      to make sure we have the same behavior as in 2.6.27 and earlier.
      
      I will work on a better and cleaner fix for 2.6.30.
      Reported-by: default avatarJohn Stanley <jpsinthemix@verizon.net>
      Tested-by: default avatarJohn Stanley <jpsinthemix@verizon.net>
      Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
      Reviewed-by: default avatarDave Chinner <david@fromorbit.com>
      Signed-off-by: default avatarLachlan McIlroy <lachlan@sgi.com>
      15440319
  4. 28 Jul, 2008 5 commits
    • Barry Naujok's avatar
      [XFS] Fix CI lookup in leaf-form directories · 07fe4dd4
      Barry Naujok authored
      
      Instead of comparing buffer pointers, compare buffer block numbers and
      don't keep buff
      
      SGI-PV: 983564
      
      SGI-Modid: xfs-linux-melb:xfs-kern:31346a
      Signed-off-by: default avatarBarry Naujok <bnaujok@sgi.com>
      Signed-off-by: default avatarChristoph Hellwig <hch@infradead.org>
      Signed-off-by: default avatarLachlan McIlroy <lachlan@sgi.com>
      07fe4dd4
    • Barry Naujok's avatar
      [XFS] Return case-insensitive match for dentry cache · 384f3ced
      Barry Naujok authored
      
      This implements the code to store the actual filename found during a
      lookup in the dentry cache and to avoid multiple entries in the dcache
      pointing to the same inode.
      
      To avoid polluting the dcache, we implement a new directory inode
      operations for lookup. xfs_vn_ci_lookup() stores the correct case name in
      the dcache.
      
      The "actual name" is only allocated and returned for a case- insensitive
      match and not an actual match.
      
      Another unusual interaction with the dcache is not storing negative
      dentries like other filesystems doing a d_add(dentry, NULL) when an ENOENT
      is returned. During the VFS lookup, if a dentry returned has no inode,
      dput is called and ENOENT is returned. By not doing a d_add, this actually
      removes it completely from the dcache to be reused. create/rename have to
      be modified to support unhashed dentries being passed in.
      
      SGI-PV: 981521
      SGI-Modid: xfs-linux-melb:xfs-kern:31208a
      Signed-off-by: default avatarBarry Naujok <bnaujok@sgi.com>
      Signed-off-by: default avatarChristoph Hellwig <hch@infradead.org>
      384f3ced
    • Barry Naujok's avatar
      [XFS] Add op_flags field and helpers to xfs_da_args · 6a178100
      Barry Naujok authored
      
      The end of the xfs_da_args structure has 4 unsigned char fields for
      true/false information on directory and attr operations using the
      xfs_da_args structure.
      
      The following converts these 4 into a op_flags field that uses the first 4
      bits for these fields and allows expansion for future operation
      information (eg. case-insensitive lookup request).
      
      SGI-PV: 981520
      SGI-Modid: xfs-linux-melb:xfs-kern:31206a
      Signed-off-by: default avatarBarry Naujok <bnaujok@sgi.com>
      Signed-off-by: default avatarChristoph Hellwig <hch@infradead.org>
      6a178100
    • Barry Naujok's avatar
      [XFS] Name operation vector for hash and compare · 5163f95a
      Barry Naujok authored
      
      Adds two pieces of functionality for the basis of case-insensitive support
      in XFS:
      
      1. A comparison result enumerated type: xfs_dacmp. It represents an
      
      exact match, case-insensitive match or no match at all. This patch
      
      only implements different and exact results.
      
      2. xfs_nameops vector for specifying how to perform the hash generation
      
      of filenames and comparision methods. In this patch the hash vector
      
      points to the existing xfs_da_hashname function and the comparison
      
      method does a length compare, and if the same, does a memcmp and
      
      return the xfs_dacmp result.
      
      All filename functions that use the hash (create, lookup remove, rename,
      etc) now use the xfs_nameops.hashname function and all directory lookup
      functions also use the xfs_nameops.compname function.
      
      The lookup functions also handle case-insensitive results even though the
      default comparison function cannot return that. And important aspect of
      the lookup functions is that an exact match always has precedence over a
      case-insensitive. So while a case-insensitive match is found, we have to
      keep looking just in case there is an exact match. In the meantime, the
      info for the first case-insensitive match is retained if no exact match is
      found.
      
      SGI-PV: 981519
      SGI-Modid: xfs-linux-melb:xfs-kern:31205a
      Signed-off-by: default avatarBarry Naujok <bnaujok@sgi.com>
      Signed-off-by: default avatarChristoph Hellwig <hch@infradead.org>
      5163f95a
    • Denys Vlasenko's avatar
      [XFS] Remove unused arg from kmem_free() · f0e2d93c
      Denys Vlasenko authored
      
      kmem_free() function takes (ptr, size) arguments but doesn't actually use
      second one.
      
      This patch removes size argument from all callsites.
      
      SGI-PV: 981498
      SGI-Modid: xfs-linux-melb:xfs-kern:31050a
      Signed-off-by: default avatarDenys Vlasenko <vda.linux@googlemail.com>
      Signed-off-by: default avatarDavid Chinner <dgc@sgi.com>
      Signed-off-by: default avatarLachlan McIlroy <lachlan@sgi.com>
      f0e2d93c
  5. 13 Feb, 2008 1 commit
  6. 18 Dec, 2007 1 commit
  7. 15 Oct, 2007 1 commit
    • Christoph Hellwig's avatar
      [XFS] use filldir internally · 051e7cd4
      Christoph Hellwig authored
      
      Currently xfs has a rather complicated internal scheme to allow for
      different directory formats in IRIX. This patch rips all code related to
      this out and pushes useage of the Linux filldir callback into the lowlevel
      directory code. This does not make the code any less portable because
      filldir can be used to create dirents of all possible variations
      (including the IRIX ones as proved by the IRIX binary emulation code under
      arch/mips/).
      
      This patch get rid of an unessecary copy in the readdir path, about 400
      lines of code and one of the last two users of the uio structure.
      
      This version is updated to deal with dmapi aswell which greatly simplifies
      the get_dirattrs code. The dmapi part has been tested using the
      get_dirattrs tools from the xfstest dmapi suite1 with various small and
      large directories.
      
      SGI-PV: 968563
      SGI-Modid: xfs-linux-melb:xfs-kern:29478a
      Signed-off-by: default avatarChristoph Hellwig <hch@infradead.org>
      Signed-off-by: default avatarDavid Chinner <dgc@sgi.com>
      Signed-off-by: default avatarTim Shimmin <tes@sgi.com>
      051e7cd4
  8. 14 Jul, 2007 1 commit
  9. 07 May, 2007 1 commit
  10. 19 Jun, 2006 1 commit
  11. 09 Jun, 2006 2 commits
  12. 28 Mar, 2006 1 commit
  13. 17 Mar, 2006 10 commits
  14. 13 Mar, 2006 1 commit
  15. 01 Nov, 2005 2 commits
  16. 21 Jun, 2005 2 commits
  17. 16 Apr, 2005 1 commit
    • Linus Torvalds's avatar
      Linux-2.6.12-rc2 · 1da177e4
      Linus Torvalds authored
      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