ext4: add support for extent pre-caching
authorTheodore Ts'o <tytso@mit.edu>
Sat, 17 Aug 2013 02:05:14 +0000 (22:05 -0400)
committerTheodore Ts'o <tytso@mit.edu>
Sat, 17 Aug 2013 02:05:14 +0000 (22:05 -0400)
commit7869a4a6c5caa7b2e5c41ccaf46eb3371f88eea7
tree1c55037a6b090b843b7f8669686dfdbbfd9ceb70
parent107a7bd31ac003e42c0f966aa8e5b26947de6024
ext4: add support for extent pre-caching

Add a new fiemap flag which forces the all of the extents in an inode
to be cached in the extent_status tree.  This is critically important
when using AIO to a preallocated file, since if we need to read in
blocks from the extent tree, the io_submit(2) system call becomes
synchronous, and the AIO is no longer "A", which is bad.

In addition, for most files which have an external leaf tree block,
the cost of caching the information in the extent status tree will be
less than caching the entire 4k block in the buffer cache.  So it is
generally a win to keep the extent information cached.

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
fs/ext4/ext4.h
fs/ext4/extents.c
fs/ext4/extents_status.c
fs/ext4/ioctl.c
include/uapi/linux/fiemap.h