1. 13 8月, 2008 10 次提交
  2. 28 7月, 2008 4 次提交
  3. 23 5月, 2008 2 次提交
  4. 29 4月, 2008 1 次提交
    • 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
  5. 18 4月, 2008 8 次提交
  6. 10 4月, 2008 1 次提交
  7. 07 2月, 2008 10 次提交
  8. 18 12月, 2007 1 次提交
    • L
      [XFS] Don't wait for pending I/Os when purging blocks beyond eof. · c734c79b
      Lachlan McIlroy 提交于
      On last close of a file we purge blocks beyond eof. The same code is used
      when we truncate the file size down. In this case we need to wait for any
      pending I/Os for dirty pages beyond the new eof. For the last close case
      we are not changing the file size and therefore do not need to wait for
      any I/Os to complete. This fixes a performance bottleneck where writes
      into the page cache and cache flushes can become mutually exclusive.
      
      SGI-PV: 964002
      SGI-Modid: xfs-linux-melb:xfs-kern:30220a
      Signed-off-by: NLachlan McIlroy <lachlan@sgi.com>
      Signed-off-by: NPeter Leckie <pleckie@sgi.com>
      c734c79b
  9. 16 10月, 2007 3 次提交
    • V
      [XFS] get_bulkall() could return incorrect inode state · 859d7182
      Vlad Apostolov 提交于
      In the following scenario xfs_bulkstat() returns incorrect stale inode
      state:
      
      1. File_A is created and its inode synced to disk. 2. File_A is unlinked
      and doesn't exist anymore. 3. Filesystem sync is invoked. 4. File_B is
      created. File_B happens to reclaim File_A's inode. 5. xfs_bulkstat() is
      called and detects File_B but reports the
      
      incorrect File_A inode state.
      
      Explanation for the incorrect inode state is that inodes are not
      immediately synced on file create for performance reasons. This leaves the
      on-disk inode buffer uninitialized (or with old state from a previous
      generation inode) and this is what xfs_bulkstat() would report.
      
      The patch marks the on-disk inode buffer "dirty" on unlink. When the inode
      is reclaimed (by a new file create), xfs_bulkstat() would filter this
      inode by the "dirty" mark. Once the inode is flushed to disk, the on-disk
      buffer "dirty" mark is automatically removed and a following
      xfs_bulkstat() would return the correct inode state.
      
      Marking the on-disk inode buffer "dirty" on unlink is achieved by setting
      the on-disk di_nlink field to 0. Note that the in-core di_nlink has
      already been set to 0 and a corresponding transaction logged by
      xfs_droplink(). This is an exception from the rule that any on-disk inode
      buffer changes has to be followed by a disk write (inode flush).
      Synchronizing the in-core to on-disk di_nlink values in advance (before
      the actual inode flush to disk) should be fine in this case because the
      inode is already unlinked and it would never change its di_nlink again for
      this inode generation.
      
      SGI-PV: 970842
      SGI-Modid: xfs-linux-melb:xfs-kern:29757a
      Signed-off-by: NVlad Apostolov <vapo@sgi.com>
      Signed-off-by: NAlex Elder <aelder@sgi.com>
      Signed-off-by: NDavid Chinner <dgc@sgi.com>
      Signed-off-by: NChristoph Hellwig <hch@infradead.org>
      Signed-off-by: NMark Goodwin <markgw@sgi.com>
      Signed-off-by: NTim Shimmin <tes@sgi.com>
      859d7182
    • C
      [XFS] kill the vfs_flags member in struct bhv_vfs · bd186aa9
      Christoph Hellwig 提交于
      All flags are added to xfs_mount's m_flag instead. Note that the 32bit
      inode flag was duplicated in both of them, but only cleared in the mount
      when it was not nessecary due to the filesystem beeing small enough. Two
      flags are still required here - one to indicate the mount option setting,
      and one to indicate if it applies or not.
      
      SGI-PV: 969608
      SGI-Modid: xfs-linux-melb:xfs-kern:29507a
      Signed-off-by: NChristoph Hellwig <hch@infradead.org>
      Signed-off-by: NDavid Chinner <dgc@sgi.com>
      Signed-off-by: NTim Shimmin <tes@sgi.com>
      bd186aa9
    • C
      [XFS] call common xfs vfs-level helpers directly and remove vfs operations · 745f6919
      Christoph Hellwig 提交于
      Also remove the now dead behavior code.
      
      SGI-PV: 969608
      SGI-Modid: xfs-linux-melb:xfs-kern:29505a
      Signed-off-by: NChristoph Hellwig <hch@infradead.org>
      Signed-off-by: NDavid Chinner <dgc@sgi.com>
      Signed-off-by: NTim Shimmin <tes@sgi.com>
      745f6919