Commit d54cdc8c authored by Josef Bacik's avatar Josef Bacik Committed by Linus Torvalds

fs: make block fiemap mapping length at least blocksize long

Some filesystems don't deal well with being asked to map less than
blocksize blocks (GFS2 for example).  Since we are always mapping at least
blocksize sections anyway, just make sure len is at least as big as a
blocksize so we don't trip up any filesystems.  Thanks,
Signed-off-by: default avatarJosef Bacik <josef@redhat.com>
Cc: Steven Whitehouse <swhiteho@redhat.com>
Cc: Christoph Hellwig <hch@lst.de>
Cc: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent 3cd90ea4
...@@ -273,6 +273,13 @@ int __generic_block_fiemap(struct inode *inode, ...@@ -273,6 +273,13 @@ int __generic_block_fiemap(struct inode *inode,
len = isize; len = isize;
} }
/*
* Some filesystems can't deal with being asked to map less than
* blocksize, so make sure our len is at least block length.
*/
if (logical_to_blk(inode, len) == 0)
len = blk_to_logical(inode, 1);
start_blk = logical_to_blk(inode, start); start_blk = logical_to_blk(inode, start);
last_blk = logical_to_blk(inode, start + len - 1); last_blk = logical_to_blk(inode, start + len - 1);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment