1. 15 7月, 2008 1 次提交
    • M
      ext4: delayed allocation ENOSPC handling · d2a17637
      Mingming Cao 提交于
      This patch does block reservation for delayed
      allocation, to avoid ENOSPC later at page flush time.
      
      Blocks(data and metadata) are reserved at da_write_begin()
      time, the freeblocks counter is updated by then, and the number of
      reserved blocks is store in per inode counter.
              
      At the writepage time, the unused reserved meta blocks are returned
      back. At unlink/truncate time, reserved blocks are properly released.
      
      Updated fix from  Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
      to fix the oldallocator block reservation accounting with delalloc, added
      lock to guard the counters and also fix the reservation for meta blocks.
      Signed-off-by: NAneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
      Signed-off-by: NMingming Cao <cmm@us.ibm.com>
      Signed-off-by: NTheodore Ts'o <tytso@mit.edu>
      d2a17637
  2. 12 7月, 2008 28 次提交
  3. 14 7月, 2008 1 次提交
    • M
      jbd2: fix race between jbd2_journal_try_to_free_buffers() and jbd2 commit transaction · 530576bb
      Mingming Cao 提交于
      journal_try_to_free_buffers() could race with jbd commit transaction
      when the later is holding the buffer reference while waiting for the
      data buffer to flush to disk. If the caller of
      journal_try_to_free_buffers() request tries hard to release the buffers,
      it will treat the failure as error and return back to the caller. We
      have seen the directo IO failed due to this race.  Some of the caller of
      releasepage() also expecting the buffer to be dropped when passed with
      GFP_KERNEL mask to the releasepage()->journal_try_to_free_buffers().
      
      With this patch, if the caller is passing the GFP_KERNEL to indicating
      this call could wait, in case of try_to_free_buffers() failed, let's
      waiting for journal_commit_transaction() to finish commit the current
      committing transaction , then try to free those buffers again with
      journal locked.
      Signed-off-by: NMingming Cao <cmm@us.ibm.com>
      Reviewed-by: Badari Pulavarty <pbadari@us.ibm.com> 
      Signed-off-by: N"Theodore Ts'o" <tytso@mit.edu>
      530576bb
  4. 12 7月, 2008 2 次提交
    • J
      ext4: New inode allocation for FLEX_BG meta-data groups. · 772cb7c8
      Jose R. Santos 提交于
      This patch mostly controls the way inode are allocated in order to
      make ialloc aware of flex_bg block group grouping.  It achieves this
      by bypassing the Orlov allocator when block group meta-data are packed
      toghether through mke2fs.  Since the impact on the block allocator is
      minimal, this patch should have little or no effect on other block
      allocation algorithms. By controlling the inode allocation, it can
      basically control where the initial search for new block begins and
      thus indirectly manipulate the block allocator.
      
      This allocator favors data and meta-data locality so the disk will
      gradually be filled from block group zero upward.  This helps improve
      performance by reducing seek time.  Since the group of inode tables
      within one flex_bg are treated as one giant inode table, uninitialized
      block groups would not need to partially initialize as many inode
      table as with Orlov which would help fsck time as the filesystem usage
      goes up.
      Signed-off-by: NJose R. Santos <jrs@us.ibm.com>
      Signed-off-by: NValerie Clement <valerie.clement@bull.net>
      Signed-off-by: N"Theodore Ts'o" <tytso@mit.edu>
      772cb7c8
    • T
      jbd2: Add commit time into the commit block · 736603ab
      Theodore Ts'o 提交于
      Carlo Wood has demonstrated that it's possible to recover deleted
      files from the journal.  Something that will make this easier is if we
      can put the time of the commit into commit block.
      Signed-off-by: N"Theodore Ts'o" <tytso@mit.edu>
      736603ab
  5. 14 7月, 2008 3 次提交
  6. 12 7月, 2008 5 次提交