1. 18 Jul, 2007 5 commits
    • 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 35 commits