generic block based fiemap implementation
authorJosef Bacik <jbacik@redhat.com>
Fri, 3 Oct 2008 21:32:43 +0000 (17:32 -0400)
committerTheodore Ts'o <tytso@mit.edu>
Fri, 3 Oct 2008 21:32:43 +0000 (17:32 -0400)
commit68c9d702bb72f367f3b148963ec6cf5e07ff7f65
tree16fc61a1bd973c14a7858ab1fbcb306d3ae75184
parent00dc417fa3e763345b34ccb6034d72de76eea0a1
generic block based fiemap implementation

Any block based fs (this patch includes ext3) just has to declare its own
fiemap() function and then call this generic function with its own
get_block_t. This works well for block based filesystems that will map
multiple contiguous blocks at one time, but will work for filesystems that
only map one block at a time, you will just end up with an "extent" for each
block. One gotcha is this will not play nicely where there is hole+data
after the EOF. This function will assume its hit the end of the data as soon
as it hits a hole after the EOF, so if there is any data past that it will
not pick that up. AFAIK no block based fs does this anyway, but its in the
comments of the function anyway just in case.

Signed-off-by: Josef Bacik <jbacik@redhat.com>
Signed-off-by: Mark Fasheh <mfasheh@suse.com>
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
Cc: linux-fsdevel@vger.kernel.org
fs/ext2/ext2.h
fs/ext2/file.c
fs/ext2/inode.c
fs/ext3/file.c
fs/ext3/inode.c
fs/ioctl.c
include/linux/ext3_fs.h
include/linux/fs.h