1. 28 7月, 2008 3 次提交
    • L
      [XFS] make inode reclaim wait for log I/O to complete · 7f871d5d
      Lachlan McIlroy 提交于
      During a forced shutdown a xfs inode can be destroyed before log I/O
      involving that inode is complete. We need to wait for the inode to be
      unpinned before tearing it down. Version 2 cleans up the code a bit by
      relying on xfs_iflush() to do the unpinning and forced shutdown check.
      
      SGI-PV: 981240
      
      SGI-Modid: xfs-linux-melb:xfs-kern:31326a
      Signed-off-by: NLachlan McIlroy <lachlan@sgi.com>
      Signed-off-by: NDavid Chinner <dgc@sgi.com>
      7f871d5d
    • B
      [XFS] Return case-insensitive match for dentry cache · 384f3ced
      Barry Naujok 提交于
      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: NBarry Naujok <bnaujok@sgi.com>
      Signed-off-by: NChristoph Hellwig <hch@infradead.org>
      384f3ced
    • C
      [XFS] kill xfs_igrow_start and xfs_igrow_finish · 61436feb
      Christoph Hellwig 提交于
      xfs_igrow_start just expands to xfs_zero_eof with two asserts that are
      useless in the context of the only caller and some rather confusing
      comments.
      
      xfs_igrow_finish is just a few lines of code decorated again with useless
      asserts and confusing comments.
      
      Just kill those two and merge them into xfs_setattr.
      
      SGI-PV: 981498
      SGI-Modid: xfs-linux-melb:xfs-kern:31186a
      Signed-off-by: NChristoph Hellwig <hch@infradead.org>
      Signed-off-by: NDavid Chinner <dgc@sgi.com>
      Signed-off-by: NLachlan McIlroy <lachlan@sgi.com>
      61436feb
  2. 23 5月, 2008 1 次提交
    • D
      [XFS] Fix fsync() b0rkage. · 978b7237
      David Chinner 提交于
      xfs_fsync() fails to wait for data I/O completion before checking if the
      inode is dirty or clean to decide whether to log the inode or not. This
      misses inode size updates when the data flushed by the fsync() is
      extending the file.
      
      Hence, like fdatasync(), we need to wait for I/o completion first, then
      check the inode for cleanliness. Doing so makes the behaviour of
      xfs_fsync() identical for fsync and fdatasync and we *always* use
      synchronous semantics if the inode is dirty. Therefore also kill the
      differences and remove the unused flags from the xfs_fsync function and
      callers.
      
      SGI-PV: 981296
      SGI-Modid: xfs-linux-melb:xfs-kern:31033a
      Signed-off-by: NDavid Chinner <dgc@sgi.com>
      Signed-off-by: NChristoph Hellwig <hch@infradead.org>
      Signed-off-by: NLachlan McIlroy <lachlan@sgi.com>
      978b7237
  3. 29 4月, 2008 8 次提交
  4. 18 4月, 2008 18 次提交
  5. 10 4月, 2008 1 次提交
  6. 07 2月, 2008 9 次提交