[PATCH] ext3 block reservations
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: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>