1. 23 2月, 2012 2 次提交
    • C
      xfs: split tail_lsn assignments from log space wakeups · 09a423a3
      Christoph Hellwig 提交于
      Currently xfs_log_move_tail has a tail_lsn argument that is horribly
      overloaded: it may contain either an actual lsn to assign to the log tail,
      0 as a special case to use the last sync LSN, or 1 to indicate that no tail
      LSN assignment should be performed, and we should opportunisticly wake up
      at one task waiting for log space even if we did not move the LSN.
      
      Remove the tail lsn assigned from xfs_log_move_tail and make the two callers
      use xlog_assign_tail_lsn instead of the current variant of partially using
      the code in xfs_log_move_tail and partially opencoding it.  Note that means
      we grow an addition lock roundtrip on the AIL lock for each bulk update
      or delete, which is still far less than what we had before introducing the
      bulk operations.  If this proves to be a problem we can still add a variant
      of xlog_assign_tail_lsn that expects the lock to be held already.
      
      Also rename the remainder of xfs_log_move_tail to xfs_log_space_wake as
      that name describes its functionality much better.
      Reviewed-by: NMark Tinguely <tinguely@sgi.com>
      Signed-off-by: NChristoph Hellwig <hch@lst.de>
      Reviewed-by: NDave Chinner <dchinner@redhat.com>
      Signed-off-by: NBen Myers <bpm@sgi.com>
      09a423a3
    • M
      xfs: cleanup quota check on disk blocks and inodes reservations · 70b54376
      Mitsuo Hayasaka 提交于
      This patch is a cleanup of quota check on disk blocks and inodes
      reservations, and changes it as follows.
      
      (1) add a total_count variable to store the total number of
          current usages and new reservations for disk blocks and inodes,
          respectively.
      
      (2) make it more readable to check if the local variables softlimit
          and hardlimit are positive. It has been changed as follows.
      	    if (softlimit > 0ULL) -> if (softlimit)
      	    if (hardlimit > 0ULL) -> if (hardlimit)
          This is because they are defined as xfs_qcnt_t which is unsigned.
      Signed-off-by: NMitsuo Hayasaka <mitsuo.hayasaka.hu@hitachi.com>
      Cc: Ben Myers <bpm@sgi.com>
      Cc: Alex Elder <elder@kernel.org>
      Cc: Christoph Hellwig <hch@lst.de>
      Reviewed-by: NMark Tinguely <tinguely@sgi.com>
      Reviewed-by: NChristoph Hellwig <hch@lst.de>
      Signed-off-by: NBen Myers <bpm@sgi.com>
      70b54376
  2. 22 2月, 2012 2 次提交
  3. 14 2月, 2012 1 次提交
  4. 11 2月, 2012 1 次提交
    • C
      xfs: use a normal shrinker for the dquot freelist · 92b2e5b3
      Christoph Hellwig 提交于
      Stop reusing dquots from the freelist when allocating new ones directly, and
      implement a shrinker that actually follows the specifications for the
      interface.  The shrinker implementation is still highly suboptimal at this
      point, but we can gradually work on it.
      
      This also fixes an bug in the previous lock ordering, where we would take
      the hash and dqlist locks inside of the freelist lock against the normal
      lock ordering.  This is only solvable by introducing the dispose list,
      and thus not when using direct reclaim of unused dquots for new allocations.
      
      As a side-effect the quota upper bound and used to free ratio values in
      /proc/fs/xfs/xqm are set to 0 as these values don't make any sense in the
      new world order.
      Signed-off-by: NChristoph Hellwig <hch@lst.de>
      Signed-off-by: NBen Myers <bpm@sgi.com>
      
      (cherry picked from commit 04da0c81)
      92b2e5b3
  5. 04 2月, 2012 3 次提交
  6. 03 2月, 2012 2 次提交
  7. 01 2月, 2012 2 次提交
  8. 26 1月, 2012 1 次提交
  9. 20 1月, 2012 10 次提交
  10. 19 1月, 2012 16 次提交