1. 12 7月, 2008 3 次提交
    • A
      ext4: cleanup block allocator · 654b4908
      Aneesh Kumar K.V 提交于
      Move the code related to block allocation to a single function and add helper
      funtions to differient allocation for data and meta data 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: N"Theodore Ts'o" <tytso@mit.edu>
      654b4908
    • A
      ext4: Use inode preallocation with -o noextents · 7061eba7
      Aneesh Kumar K.V 提交于
      When mballoc is enabled, block allocation for old block-based
      files are allocated using mballoc allocator instead of old
      block-based allocator. The old ext3 block reservation is turned
      off when mballoc is turned on.
      
      However, the in-core preallocation is not enabled for block-based/
      non-extent based file block allocation. This result in performance
      regression, as now we don't have "reservation" ore in-core preallocation
      to prevent interleaved fragmentation in multiple writes workload.
      
      This patch fix this by enable per inode in-core preallocation
      for non extent files when mballoc is used.
      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: N"Theodore Ts'o" <tytso@mit.edu>
      7061eba7
    • 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
  2. 14 7月, 2008 1 次提交
  3. 12 7月, 2008 2 次提交
  4. 30 4月, 2008 1 次提交
  5. 29 4月, 2008 1 次提交
  6. 30 4月, 2008 1 次提交
  7. 29 4月, 2008 1 次提交
    • A
      ext4: Fix race between migration and mmap write · 267e4db9
      Aneesh Kumar K.V 提交于
      Fail migrate if we allocated new blocks via mmap write.
      
      If we write to holes in the file via mmap, we end up allocating
      new blocks. This block allocation happens without taking inode->i_mutex.
      Since migrate is protected by i_mutex and migrate expects that no
      new blocks get allocated during migrate, fail migrate if new blocks
      get allocated.
      
      We can't take inode->i_mutex in the mmap write path because that
      would result in a locking order violation between i_mutex and mmap_sem.
      Also adding a separate rw_sempahore for protection is really high overhead
      for a rare operation such as migrate.
      Signed-off-by: NAneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
      Acked-by: NJan Kara <jack@suse.cz>
      Signed-off-by: N"Theodore Ts'o" <tytso@mit.edu>
      267e4db9
  8. 10 2月, 2008 1 次提交
    • T
      ext4: Add new "development flag" to the ext4 filesystem · 469108ff
      Theodore Tso 提交于
      This flag is simply a generic "this is a crash/burn test filesystem"
      marker.  If it is set, then filesystem code which is "in development"
      will be allowed to mount the filesystem.  Filesystem code which is not
      considered ready for prime-time will check for this flag, and if it is
      not set, it will refuse to touch the filesystem.
      
      As we start rolling ext4 out to distro's like Fedora, et. al, this makes
      it less likely that a user might accidentally start using ext4 on a
      production filesystem; a bad thing, since that will essentially make it
      be unfsckable until e2fsprogs catches up.
      Signed-off-by: NTheodore Tso <tytso@MIT.EDU>
      Signed-off-by: NMingming Cao <cmm@us.ibm.com>
      469108ff
  9. 08 2月, 2008 1 次提交
  10. 29 1月, 2008 18 次提交
  11. 18 10月, 2007 9 次提交
  12. 18 7月, 2007 1 次提交
    • A
      ext4: Remove 65000 subdirectory limit · f8628a14
      Andreas Dilger 提交于
      This patch adds support to ext4 for allowing more than 65000
      subdirectories. Currently the maximum number of subdirectories is capped
      at 32000.
      
      If we exceed 65000 subdirectories in an htree directory it sets the
      inode link count to 1 and no longer counts subdirectories.  The
      directory link count is not actually used when determining if a
      directory is empty, as that only counts subdirectories and not regular
      files that might be in there. 
      
      A EXT4_FEATURE_RO_COMPAT_DIR_NLINK flag has been added and it is set if
      the subdir count for any directory crosses 65000. A later fsck will clear
      EXT4_FEATURE_RO_COMPAT_DIR_NLINK if there are no longer any directory
      with >65000 subdirs.
      Signed-off-by: NAndreas Dilger <adilger@clusterfs.com>
      Signed-off-by: NKalpak Shah <kalpak@clusterfs.com>
      Signed-off-by: N"Theodore Ts'o" <tytso@mit.edu>
      
      f8628a14