1. 18 Jul, 2007 7 commits
    • Jan Kara's avatar
      ext4: copy i_flags to inode flags on write · ff9ddf7e
      Jan Kara authored
          
      Propagate flags such as S_APPEND, S_IMMUTABLE, etc. from i_flags into
      ext4-specific i_flags.  Quota code changes these flags on quota files
      (to make it harder for sysadmin to screw himself) and these changes were
      not correctly propagated into the filesystem.
      
      (This is a forward port patch from ext3)
      Signed-off-by: default avatarJan Kara <jack@suse.cz>
      Signed-off-by: default avatarMingming Cao <cmm@us.ibm.com>
      Signed-off-by: default avatar"Theodore Ts'o" <tytso@mit.edu>
      ff9ddf7e
    • Mingming Cao's avatar
      ext4: Enable extents by default · 1e2462f9
      Mingming Cao authored
      Turn on extents feature by default in ext4 filesystem, to get wider
      testing of extents feature in ext4dev.  This can be disabled using 
      -o noextents.  
      Signed-off-by: default avatarMingming Cao <cmm@us.ibm.com>
      Signed-off-by: default avatar"Theodore Ts'o" <tytso@mit.edu>
      1e2462f9
    • Amit Arora's avatar
      Change on-disk format to support 2^15 uninitialized extents · 749269fa
      Amit Arora authored
      This change was suggested by Andreas Dilger. 
      This patch changes the EXT_MAX_LEN value and extent code which marks/checks
      uninitialized extents. With this change it will be possible to have
      initialized extents with 2^15 blocks (earlier the max blocks we could have
      was 2^15 - 1). This way we can have better extent-to-block alignment.
      Now, maximum number of blocks we can have in an initialized extent is 2^15
      and in an uninitialized extent is 2^15 - 1.
      Signed-off-by: default avatarAmit Arora <aarora@in.ibm.com>
      749269fa
    • Amit Arora's avatar
      write support for preallocated blocks · 56055d3a
      Amit Arora authored
      This patch adds write support to the uninitialized extents that get
      created when a preallocation is done using fallocate(). It takes care of
      splitting the extents into multiple (upto three) extents and merging the
      new split extents with neighbouring ones, if possible.
      Signed-off-by: default avatarAmit Arora <aarora@in.ibm.com>
      56055d3a
    • Amit Arora's avatar
      fallocate support in ext4 · a2df2a63
      Amit Arora authored
      This patch implements ->fallocate() inode operation in ext4. With this
      patch users of ext4 file systems will be able to use fallocate() system
      call for persistent preallocation. Current implementation only supports
      preallocation for regular files (directories not supported as of date)
      with extent maps. This patch does not support block-mapped files currently.
      Only FALLOC_ALLOCATE and FALLOC_RESV_SPACE modes are being supported as of
      now.
      Signed-off-by: default avatarAmit Arora <aarora@in.ibm.com>
      a2df2a63
    • Amit Arora's avatar
      sys_fallocate() implementation on i386, x86_64 and powerpc · 97ac7350
      Amit Arora authored
      fallocate() is a new system call being proposed here which will allow
      applications to preallocate space to any file(s) in a file system.
      Each file system implementation that wants to use this feature will need
      to support an inode operation called ->fallocate().
      Applications can use this feature to avoid fragmentation to certain
      level and thus get faster access speed. With preallocation, applications
      also get a guarantee of space for particular file(s) - even if later the
      the system becomes full.
      
      Currently, glibc provides an interface called posix_fallocate() which
      can be used for similar cause. Though this has the advantage of working
      on all file systems, but it is quite slow (since it writes zeroes to
      each block that has to be preallocated). Without a doubt, file systems
      can do this more efficiently within the kernel, by implementing
      the proposed fallocate() system call. It is expected that
      posix_fallocate() will be modified to call this new system call first
      and incase the kernel/filesystem does not implement it, it should fall
      back to the current implementation of writing zeroes to the new blocks.
      ToDos:
      1. Implementation on other architectures (other than i386, x86_64,
         and ppc). Patches for s390(x) and ia64 are already available from
         previous posts, but it was decided that they should be added later
         once fallocate is in the mainline. Hence not including those patches
         in this take.
      2. Changes to glibc,
         a) to support fallocate() system call
         b) to make posix_fallocate() and posix_fallocate64() call fallocate()
      Signed-off-by: default avatarAmit Arora <aarora@in.ibm.com>
      97ac7350
    • Paul Mundt's avatar
      slob: Kill off duplicate kzalloc() definition. · cb32da04
      Paul Mundt authored
      With the slab zeroing allocations cleanups Christoph stubbed in a generic
      kzalloc(), which was missed on SLOB. Follow the SLAB/SLUB changes and
      kill off the __kzalloc() wrapper that SLOB was using.
      Reported-by: default avatarJan Engelhardt <jengelh@computergmbh.de>
      Signed-off-by: default avatarPaul Mundt <lethal@linux-sh.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      cb32da04
  2. 17 Jul, 2007 33 commits