1. 10 12月, 2008 1 次提交
  2. 04 12月, 2008 4 次提交
  3. 01 12月, 2008 8 次提交
  4. 30 10月, 2008 11 次提交
  5. 13 8月, 2008 8 次提交
  6. 28 7月, 2008 1 次提交
  7. 29 4月, 2008 2 次提交
    • C
      [XFS] remove manual lookup from xfs_rename and simplify locking · cfa853e4
      Christoph Hellwig 提交于
      ->rename already gets the target inode passed if it exits. Pass it down to
      xfs_rename so that we can avoid looking it up again. Also simplify locking
      as the first lock section in xfs_rename can go away now: the isdir is an
      invariant over the lifetime of the inode, and new_parent and the nlink
      check are namespace topology protected by i_mutex in the VFS. The projid
      check needs to move into the second lock section anyway to not be racy.
      
      Also kill the now unused xfs_dir_lookup_int and remove the now-unused
      first_locked argumet to xfs_lock_inodes.
      
      SGI-PV: 976035
      SGI-Modid: xfs-linux-melb:xfs-kern:30903a
      Signed-off-by: NChristoph Hellwig <hch@infradead.org>
      Signed-off-by: NLachlan McIlroy <lachlan@sgi.com>
      cfa853e4
    • C
      [XFS] shrink mrlock_t · 579aa9ca
      Christoph Hellwig 提交于
      The writer field is not needed for non_DEBU builds so remove it. While
      we're at i also clean up the interface for is locked asserts to go through
      and xfs_iget.c helper with an interface like the xfs_ilock routines to
      isolated the XFS codebase from mrlock internals. That way we can kill
      mrlock_t entirely once rw_semaphores grow an islocked facility. Also
      remove unused flags to the ilock family of functions.
      
      SGI-PV: 976035
      SGI-Modid: xfs-linux-melb:xfs-kern:30902a
      Signed-off-by: NChristoph Hellwig <hch@infradead.org>
      Signed-off-by: NLachlan McIlroy <lachlan@sgi.com>
      579aa9ca
  8. 18 4月, 2008 3 次提交
    • D
      [XFS] Remove the xfs_icluster structure · bad55843
      David Chinner 提交于
      Remove the xfs_icluster structure and replace with a radix tree lookup.
      
      We don't need to keep a list of inodes in each cluster around anymore as
      we can look them up quickly when we need to. The only time we need to do
      this now is during inode writeback.
      
      Factor the inode cluster writeback code out of xfs_iflush and convert it
      to use radix_tree_gang_lookup() instead of walking a list of inodes built
      when we first read in the inodes.
      
      This remove 3 pointers from each xfs_inode structure and the xfs_icluster
      structure per inode cluster. Hence we reduce the cache footprint of the
      xfs_inodes by between 5-10% depending on cluster sparseness.
      
      To be truly efficient we need a radix_tree_gang_lookup_range() call to
      stop searching once we are past the end of the cluster instead of trying
      to find a full cluster's worth of inodes.
      
      Before (ia64):
      
      $ cat /sys/slab/xfs_inode/object_size 536
      
      After:
      
      $ cat /sys/slab/xfs_inode/object_size 512
      
      SGI-PV: 977460
      SGI-Modid: xfs-linux-melb:xfs-kern:30502a
      Signed-off-by: NDavid Chinner <dgc@sgi.com>
      Signed-off-by: NChristoph Hellwig <hch@infradead.org>
      Signed-off-by: NLachlan McIlroy <lachlan@sgi.com>
      bad55843
    • D
      [XFS] Don't block pdflush when writing back inodes · a3f74ffb
      David Chinner 提交于
      When pdflush is writing back inodes, it can get stuck on inode cluster
      buffers that are currently under I/O. This occurs when we write data to
      multiple inodes in the same inode cluster at the same time.
      
      Effectively, delayed allocation marks the inode dirty during the data
      writeback. Hence if the inode cluster was flushed during the writeback of
      the first inode, the writeback of the second inode will block waiting for
      the inode cluster write to complete before writing it again for the newly
      dirtied inode.
      
      Basically, we want to avoid this from happening so we don't block pdflush
      and slow down all of writeback. Hence we introduce a non-blocking async
      inode flush flag that pdflush uses. If this flag is set, we use
      non-blocking operations (e.g. try locks) whereever we can to avoid
      blocking or extra I/O being issued.
      
      SGI-PV: 970925
      SGI-Modid: xfs-linux-melb:xfs-kern:30501a
      Signed-off-by: NDavid Chinner <dgc@sgi.com>
      Signed-off-by: NLachlan McIlroy <lachlan@sgi.com>
      a3f74ffb
    • D
      [XFS] Remove the xfs_refcache · 163d3686
      Donald Douwsma 提交于
      Remove the xfs_refcache, it was only needed while we were still
      building for 2.4 kernels.
      
      SGI-PV: 971186
      SGI-Modid: xfs-linux-melb:xfs-kern:30472a
      Signed-off-by: NDonald Douwsma <donaldd@sgi.com>
      Signed-off-by: NChristoph Hellwig <hch@infradead.org>
      Signed-off-by: NLachlan McIlroy <lachlan@sgi.com>
      163d3686
  9. 07 2月, 2008 2 次提交
    • C
      [XFS] use generic_permission · 4576758d
      Christoph Hellwig 提交于
      Now that all direct caller of xfs_iaccess are gone we can kill xfs_iaccess
      and xfs_access and just use generic_permission with a check_acl callback.
      This is required for the per-mount read-only patchset in -mm to work
      properly with XFS.
      
      SGI-PV: 971186
      SGI-Modid: xfs-linux-melb:xfs-kern:30370a
      Signed-off-by: NChristoph Hellwig <hch@infradead.org>
      Signed-off-by: NLachlan McIlroy <lachlan@sgi.com>
      4576758d
    • C
      [XFS] Remove CFORK macros and use code directly in IFORK and DFORK macros. · 45ba598e
      Christoph Hellwig 提交于
      Currently XFS_IFORK_* and XFS_DFORK* are implemented by means of
      XFS_CFORK* macros. But given that XFS_IFORK_* operates on an xfs_inode
      that embedds and xfs_icdinode_core and XFS_DFORK_* operates on an
      xfs_dinode that embedds a xfs_dinode_core one will have to do endian
      swapping while the other doesn't. Instead of having the current mess with
      the CFORK macros that have byteswapping and non-byteswapping version
      (which are inconsistantly named while we're at it) just define each family
      of the macros to stand by itself and simplify the whole matter.
      
      A few direct references to the CFORK variants were cleaned up to use IFORK
      or DFORK to make this possible.
      
      SGI-PV: 971186
      SGI-Modid: xfs-linux-melb:xfs-kern:30163a
      Signed-off-by: NChristoph Hellwig <hch@infradead.org>
      Signed-off-by: NTim Shimmin <tes@sgi.com>
      Signed-off-by: NLachlan McIlroy <lachlan@sgi.com>
      45ba598e