From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 309B0C433F5 for ; Fri, 26 Nov 2021 02:38:03 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1358436AbhKZClN (ORCPT ); Thu, 25 Nov 2021 21:41:13 -0500 Received: from mail.kernel.org ([198.145.29.99]:48164 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S245022AbhKZCjL (ORCPT ); Thu, 25 Nov 2021 21:39:11 -0500 Received: by mail.kernel.org (Postfix) with ESMTPSA id 464F661213; Fri, 26 Nov 2021 02:33:46 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1637894026; bh=xhF43sL2mbuArIuV4IEsRxFpHfQhXEj210qoJ3eDTLU=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=AzKQFqVBBx/IXXP4fuF1tPmym6nXqHFxxCfhQBymwq7/Tq7ArbmIHMo0oeGxYVOB+ S5FkXE5Ei8KE2Zp51RLz6VWJpT3CGSvfU5Nr4Eu+9oLuzd1bDbFQAmcylVyoUkxhql dS6d9rwCKkMSZJotR9aYydmknbTdD60JRJNeV7Zq40RtARmr7CIBvfh9pOI3wqnMQ5 feniFiGLZGUD4PDafFuZvzbt28GIBK4mR1RKNkBA8Qu8+8kWjRDzvz5BiiEt4FW9dl oyp3eH/o7TbOLYNo4hnHdIixefXg+ZAJjammKOgzrE9flh1/1ILedY/LF5fX/g2L8w 6CfvzcDcpTEqg== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Andreas Gruenbacher , Sasha Levin , rpeterso@redhat.com, cluster-devel@redhat.com Subject: [PATCH AUTOSEL 5.10 02/28] gfs2: Fix length of holes reported at end-of-file Date: Thu, 25 Nov 2021 21:33:17 -0500 Message-Id: <20211126023343.442045-2-sashal@kernel.org> X-Mailer: git-send-email 2.33.0 In-Reply-To: <20211126023343.442045-1-sashal@kernel.org> References: <20211126023343.442045-1-sashal@kernel.org> MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Andreas Gruenbacher [ Upstream commit f3506eee81d1f700d9ee2d2f4a88fddb669ec032 ] Fix the length of holes reported at the end of a file: the length is relative to the beginning of the extent, not the seek position which is rounded down to the filesystem block size. This bug went unnoticed for some time, but is now caught by the following assertion in iomap_iter_done(): WARN_ON_ONCE(iter->iomap.offset + iter->iomap.length <= iter->pos) Signed-off-by: Andreas Gruenbacher Signed-off-by: Sasha Levin --- fs/gfs2/bmap.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fs/gfs2/bmap.c b/fs/gfs2/bmap.c index a1f9dde33058f..b34c02985d9d2 100644 --- a/fs/gfs2/bmap.c +++ b/fs/gfs2/bmap.c @@ -940,7 +940,7 @@ static int gfs2_iomap_get(struct inode *inode, loff_t pos, loff_t length, else if (height == ip->i_height) ret = gfs2_hole_size(inode, lblock, len, mp, iomap); else - iomap->length = size - pos; + iomap->length = size - iomap->offset; } else if (flags & IOMAP_WRITE) { u64 alloc_size; -- 2.33.0