1. 21 7月, 2011 5 次提交
    • D
      xfs: convert AIL cursors to use struct list_head · af3e4022
      Dave Chinner 提交于
      The list of active AIL cursors uses a roll-your-own linked list with
      special casing for the AIL push cursor. Simplify this code by
      replacing the list with standard struct list_head lists, and use a
      separate list_head to track the active cursors. This allows us to
      treat the AIL push cursor as a generic cursor rather than as a
      special case, further simplifying the code.
      
      Further, fix the duplicate push cursor initialisation that the
      special case handling was hiding, and clean up all the comments
      around the active cursor list handling.
      Signed-off-by: NDave Chinner <dchinner@redhat.com>
      Reviewed-by: NChristoph Hellwig <hch@lst.de>
      Signed-off-by: NAlex Elder <aelder@sgi.com>
      af3e4022
    • D
      xfs: remove confusing ail cursor wrapper · 16b59029
      Dave Chinner 提交于
      xfs_trans_ail_cursor_set() doesn't set the cursor to the current log
      item, it sets it to the next item. There is already a function for
      doing this - xfs_trans_ail_cursor_next() - and the _set function is
      simply a two line wrapper.  Remove it and open code the setting of
      the cursor in the two locations that call it to remove the
      confusion.
      Signed-off-by: NDave Chinner <dchinner@redhat.com>
      Reviewed-by: NChristoph Hellwig <hch@lst.de>
      Signed-off-by: NAlex Elder <aelder@sgi.com>
      16b59029
    • D
      xfs: use a cursor for bulk AIL insertion · 1d8c95a3
      Dave Chinner 提交于
      Delayed logging can insert tens of thousands of log items into the
      AIL at the same LSN. When the committing of log commit records
      occur, we can get insertions occurring at an LSN that is not at the
      end of the AIL. If there are thousands of items in the AIL on the
      tail LSN, each insertion has to walk the AIL to find the correct
      place to insert the new item into the AIL. This can consume large
      amounts of CPU time and block other operations from occurring while
      the traversals are in progress.
      
      To avoid this repeated walk, use a AIL cursor to record
      where we should be inserting the new items into the AIL without
      having to repeat the walk. The cursor infrastructure already
      provides this functionality for push walks, so is a simple extension
      of existing code. While this will not avoid the initial walk, it
      will avoid repeating it tens of thousands of times during a single
      checkpoint commit.
      
      This version includes logic improvements from Christoph Hellwig.
      Signed-off-by: NDave Chinner <dchinner@redhat.com>
      Reviewed-by: NChristoph Hellwig <hch@lst.de>
      Signed-off-by: NAlex Elder <aelder@sgi.com>
      1d8c95a3
    • J
      xfs: failure mapping nfs fh to inode should return ESTALE · ad1a2c87
      J. Bruce Fields 提交于
      On xfs exports, nfsd is incorrectly returning ENOENT instead of
      ESTALE on attempts to use a filehandle of a deleted file (spotted
      with pynfs test PUTFH3).  The ENOENT was coming from xfs_iget.
      
      (It's tempting to wonder whether we should just map all xfs_iget
      errors to ESTALE, but I don't believe so--xfs_iget can also return
      ENOMEM at least, which we wouldn't want mapped to ESTALE.)
      
      While we're at it, the other return of ENOENT in xfs_nfs_get_inode()
      also looks wrong.
      Signed-off-by: NJ. Bruce Fields <bfields@redhat.com>
      Signed-off-by: NAlex Elder <aelder@sgi.com>
      ad1a2c87
    • C
      xfs: Remove the second parameter to xfs_sb_count() · adab0f67
      Chandra Seetharaman 提交于
      Remove the second parameter to xfs_sb_count() since all callers of
      the function set them.
      
      Also, fix the header comment regarding it being called periodically.
      Signed-off-by: NChandra Seetharaman <sekharan@us.ibm.com>
      Signed-off-by: NAlex Elder <aelder@sgi.com>
      adab0f67
  2. 13 7月, 2011 12 次提交
  3. 11 7月, 2011 1 次提交
  4. 09 7月, 2011 2 次提交
  5. 08 7月, 2011 20 次提交