From mboxrd@z Thu Jan 1 00:00:00 1970 From: Josef Bacik Subject: [PATCH] fs: make block fiemap mapping length at least blocksize long Date: Wed, 8 Dec 2010 12:03:10 -0500 Message-ID: <1291827790-21377-1-git-send-email-josef@redhat.com> To: linux-fsdevel@vger.kernel.org, akpm@linux-foundation.org, swhiteho@redhat.com Return-path: Received: from mx1.redhat.com ([209.132.183.28]:9672 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754671Ab0LHRNd (ORCPT ); Wed, 8 Dec 2010 12:13:33 -0500 Sender: linux-fsdevel-owner@vger.kernel.org List-ID: 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: Josef Bacik --- fs/ioctl.c | 7 +++++++ 1 files changed, 7 insertions(+), 0 deletions(-) diff --git a/fs/ioctl.c b/fs/ioctl.c index d6cc164..6b53c24 100644 --- a/fs/ioctl.c +++ b/fs/ioctl.c @@ -273,6 +273,13 @@ int __generic_block_fiemap(struct inode *inode, 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); last_blk = logical_to_blk(inode, start + len - 1); -- 1.6.6.1