diff options
| -rw-r--r-- | fs/ioctl.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/fs/ioctl.c b/fs/ioctl.c index a59635e295fa..1eebeb72b202 100644 --- a/fs/ioctl.c +++ b/fs/ioctl.c | |||
| @@ -273,6 +273,13 @@ int __generic_block_fiemap(struct inode *inode, | |||
| 273 | len = isize; | 273 | len = isize; |
| 274 | } | 274 | } |
| 275 | 275 | ||
| 276 | /* | ||
| 277 | * Some filesystems can't deal with being asked to map less than | ||
| 278 | * blocksize, so make sure our len is at least block length. | ||
| 279 | */ | ||
| 280 | if (logical_to_blk(inode, len) == 0) | ||
| 281 | len = blk_to_logical(inode, 1); | ||
| 282 | |||
| 276 | start_blk = logical_to_blk(inode, start); | 283 | start_blk = logical_to_blk(inode, start); |
| 277 | last_blk = logical_to_blk(inode, start + len - 1); | 284 | last_blk = logical_to_blk(inode, start + len - 1); |
| 278 | 285 | ||
