• Mingming Cao's avatar
    [PATCH] ext3 block reservations · 382c958e
    Mingming Cao authored
    rbtree implementation and other changes From: Stephen Tweedie <sct@redhat.com>
    contributions From: Badari Pulavarty <pbadari@us.ibm.com> and probably me.
    
    This is the ext3 block reservation patch.  It improves the layout of ext3
    files by establishing, for each inode, reserved areas of the disk in which
    only that file can allocate blocks.  Those reserved areas are managed in an
    rbtree, via the in-core inode.
    
    It's a bit like ext2 preallocation only stronger in that it can span
    already-allocated blocks, including the per-blockgroup inode tables and
    bitmaps.
    
    The patch fixes ext3's worst performance problem: disastrous layout when
    multiple files are being concurrently grown.
    
    It increases the size of the inode by rather a lot.  A todo item is to
    dynamically allocate the `struct reserve_window_node', so we don't need to
    carry this storage for inodes which aren't opened for writing.
    
    The feature is enabled by mounting with the "reservation" mount option. 
    Reservations default to "off".
    Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
    382c958e
inode.c 87.5 KB