summaryrefslogtreecommitdiffstats
path: root/fs/ext3/file.c
diff options
context:
space:
mode:
authorJosef Bacik <jbacik@redhat.com>2008-10-03 17:32:43 -0400
committerTheodore Ts'o <tytso@mit.edu>2008-10-03 17:32:43 -0400
commit68c9d702bb72f367f3b148963ec6cf5e07ff7f65 (patch)
tree16fc61a1bd973c14a7858ab1fbcb306d3ae75184 /fs/ext3/file.c
parent00dc417fa3e763345b34ccb6034d72de76eea0a1 (diff)
downloadlinux-68c9d702bb72f367f3b148963ec6cf5e07ff7f65.tar.gz
linux-68c9d702bb72f367f3b148963ec6cf5e07ff7f65.tar.bz2
linux-68c9d702bb72f367f3b148963ec6cf5e07ff7f65.zip
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
Diffstat (limited to 'fs/ext3/file.c')
-rw-r--r--fs/ext3/file.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/fs/ext3/file.c b/fs/ext3/file.c
index acc4913d3019..3be1e0689c9a 100644
--- a/fs/ext3/file.c
+++ b/fs/ext3/file.c
@@ -134,5 +134,6 @@ const struct inode_operations ext3_file_inode_operations = {
.removexattr = generic_removexattr,
#endif
.permission = ext3_permission,
+ .fiemap = ext3_fiemap,
};