1. 28 Mar, 2009 1 commit
    • Theodore Ts'o's avatar
      ext4: Regularize mount options · 06705bff
      Theodore Ts'o authored
      Add support for using the mount options "barrier" and "nobarrier", and
      "auto_da_alloc" and "noauto_da_alloc", which is more consistent than
      "barrier=<0|1>" or "auto_da_alloc=<0|1>".  Most other ext3/ext4 mount
      options use the foo/nofoo naming convention.  We allow the old forms
      of these mount options for backwards compatibility.
      Signed-off-by: default avatar"Theodore Ts'o" <tytso@mit.edu>
      06705bff
  2. 27 Mar, 2009 4 commits
  3. 31 Mar, 2009 1 commit
  4. 26 Mar, 2009 2 commits
  5. 17 Mar, 2009 1 commit
    • Theodore Ts'o's avatar
      ext4: Add auto_da_alloc mount option · afd4672d
      Theodore Ts'o authored
      Add a mount option which allows the user to disable automatic
      allocation of blocks whose allocation by delayed allocation when the
      file was originally truncated or when the file is renamed over an
      existing file.  This feature is intended to save users from the
      effects of naive application writers, but it reduces the effectiveness
      of the delayed allocation code.  This mount option disables this
      safety feature, which may be desirable for prodcutions systems where
      the risk of unclean shutdowns or unexpected system crashes is low.
      Signed-off-by: default avatar"Theodore Ts'o" <tytso@mit.edu>
      afd4672d
  6. 05 Mar, 2009 2 commits
  7. 31 Mar, 2009 2 commits
  8. 01 Mar, 2009 1 commit
  9. 28 Mar, 2009 1 commit
  10. 24 Feb, 2009 2 commits
    • Theodore Ts'o's avatar
      ext4: Automatically allocate delay allocated blocks on rename · 8750c6d5
      Theodore Ts'o authored
      When renaming a file such that a link to another inode is overwritten,
      force any delay allocated blocks that to be allocated so that if the
      filesystem is mounted with data=ordered, the data blocks will be
      pushed out to disk along with the journal commit.  Many application
      programs expect this, so we do this to avoid zero length files if the
      system crashes unexpectedly.
      Signed-off-by: default avatar"Theodore Ts'o" <tytso@mit.edu>
      8750c6d5
    • Theodore Ts'o's avatar
      ext4: Automatically allocate delay allocated blocks on close · 7d8f9f7d
      Theodore Ts'o authored
      When closing a file that had been previously truncated, force any
      delay allocated blocks that to be allocated so that if the filesystem
      is mounted with data=ordered, the data blocks will be pushed out to
      disk along with the journal commit.  Many application programs expect
      this, so we do this to avoid zero length files if the system crashes
      unexpectedly.
      Signed-off-by: default avatar"Theodore Ts'o" <tytso@mit.edu>
      7d8f9f7d
  11. 26 Feb, 2009 1 commit
    • Theodore Ts'o's avatar
      ext4: add EXT4_IOC_ALLOC_DA_BLKS ioctl · ccd2506b
      Theodore Ts'o authored
      Add an ioctl which forces all of the delay allocated blocks to be
      allocated.  This also provides a function ext4_alloc_da_blocks() which
      will be used by the following commits to force files to be fully
      allocated to preserve application-expected ext3 behaviour.
      Signed-off-by: default avatar"Theodore Ts'o" <tytso@mit.edu>
      ccd2506b
  12. 23 Feb, 2009 4 commits
  13. 27 Mar, 2009 1 commit
  14. 12 Mar, 2009 1 commit
  15. 23 Feb, 2009 1 commit
    • Bryan Donlan's avatar
      ext4: return -EIO not -ESTALE on directory traversal through deleted inode · e6f009b0
      Bryan Donlan authored
      ext4_iget() returns -ESTALE if invoked on a deleted inode, in order to
      report errors to NFS properly.  However, in ext4_lookup(), this
      -ESTALE can be propagated to userspace if the filesystem is corrupted
      such that a directory entry references a deleted inode.  This leads to
      a misleading error message - "Stale NFS file handle" - and confusion
      on the part of the admin.
      
      The bug can be easily reproduced by creating a new filesystem, making
      a link to an unused inode using debugfs, then mounting and attempting
      to ls -l said link.
      
      This patch thus changes ext4_lookup to return -EIO if it receives
      -ESTALE from ext4_iget(), as ext4 does for other filesystem metadata
      corruption; and also invokes the appropriate ext*_error functions when
      this case is detected.
      Signed-off-by: default avatarBryan Donlan <bdonlan@gmail.com>
      Cc: <linux-ext4@vger.kernel.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatar"Theodore Ts'o" <tytso@mit.edu>
      e6f009b0
  16. 12 Mar, 2009 1 commit
    • Theodore Ts'o's avatar
      ext4: New inode/block allocation algorithms for flex_bg filesystems · a4912123
      Theodore Ts'o authored
      The find_group_flex() inode allocator is now only used if the
      filesystem is mounted using the "oldalloc" mount option.  It is
      replaced with the original Orlov allocator that has been updated for
      flex_bg filesystems (it should behave the same way if flex_bg is
      disabled).  The inode allocator now functions by taking into account
      each flex_bg group, instead of each block group, when deciding whether
      or not it's time to allocate a new directory into a fresh flex_bg.
      
      The block allocator has also been changed so that the first block
      group in each flex_bg is preferred for use for storing directory
      blocks.  This keeps directory blocks close together, which is good for
      speeding up e2fsck since large directories are more likely to look
      like this:
      
      debugfs:  stat /home/tytso/Maildir/cur
      Inode: 1844562   Type: directory    Mode:  0700   Flags: 0x81000
      Generation: 1132745781    Version: 0x00000000:0000ad71
      User: 15806   Group: 15806   Size: 1060864
      File ACL: 0    Directory ACL: 0
      Links: 2   Blockcount: 2072
      Fragment:  Address: 0    Number: 0    Size: 0
       ctime: 0x499c0ff4:164961f4 -- Wed Feb 18 08:41:08 2009
       atime: 0x499c0ff4:00000000 -- Wed Feb 18 08:41:08 2009
       mtime: 0x49957f51:00000000 -- Fri Feb 13 09:10:25 2009
      crtime: 0x499c0f57:00d51440 -- Wed Feb 18 08:38:31 2009
      Size of extra inode fields: 28
      BLOCKS:
      (0):7348651, (1-258):7348654-7348911
      TOTAL: 259
      Signed-off-by: default avatar"Theodore Ts'o" <tytso@mit.edu>
      a4912123
  17. 15 Feb, 2009 5 commits
  18. 06 Feb, 2009 2 commits
  19. 29 Mar, 2009 7 commits