Received: by 2002:a25:1985:0:0:0:0:0 with SMTP id 127csp1727337ybz; Sat, 18 Apr 2020 07:16:19 -0700 (PDT) X-Google-Smtp-Source: APiQypJ1xeqOX2qCYrxjAh7JjodpD7U1LO/P5uF8cffa6b1ECv96tTXFkcbRY5RHPYV6q1XQgDF7 X-Received: by 2002:a17:906:c7c5:: with SMTP id dc5mr8094946ejb.50.1587219379032; Sat, 18 Apr 2020 07:16:19 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1587219379; cv=none; d=google.com; s=arc-20160816; b=jkx3zVhDCLuzwX7HoVGj5Ks6Ipp6BpU+jejtJs+8W5X1eL78xYRSmNbD65VN3+Rxgc b98VkdlpurG6QDmu9TyN1eyZEAHr7IU/Na3X//y51MPA05PZ9mKMZ+gzY56/+wQnfWnH mC3xfH+YxwuRdkoKswCIUnDprfM9G3N2edfadck3lzodFqQei6be62oOkUctjZ5gF3U3 V19tgy9GGL/mJwqpGZdul7nb8U1eWORM/d3bXkiT9Cf51e7KR6Jyz6a8/YP0Lcy8wLWF oH3Gsxl4b33MZCO45h7D7tTa49rFhcGF/bwtr+QT9VhbFbmNgKL1W6WlaCZC8OxKZGxJ iDRw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=7+2kMQagTNdtgesEIJLkRWOluvN8fzbbd56tW9YifRM=; b=C9HP90jAZY8jp0/4/TjszopZ0qM3rdrw28MQxD0U+oJU3qAahsZG1JfqwZD6nfJQ4j V4mU6IhZ/Uq5mJObbwgauGPNZcL4VLBkzX9vGEBOpsJ9FwaETYofnyQvpofwrhMYtCtj 157ATFEz0vcdWtXB3SztfH61KTCJW5icF+qWMGy5gg5SBh6uaLRrzNSnoBo825ojqL7l 41siEsjfiTdRHPf95xWX9GoCSPcbwS9Q/FZyGyBL1pxuM3q9rkV70JAJurp5s6/02iXZ 9on4VhpyxMkGNubDxhK/bU2utfQZ6f9PBAGipENjJjhxqzPefxkLam8yojirKR429WqO 5LVA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=ABvp1WFo; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id qn4si9204278ejb.209.2020.04.18.07.15.55; Sat, 18 Apr 2020 07:16:19 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=ABvp1WFo; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726620AbgDROMI (ORCPT + 99 others); Sat, 18 Apr 2020 10:12:08 -0400 Received: from mail.kernel.org ([198.145.29.99]:38224 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726885AbgDROKP (ORCPT ); Sat, 18 Apr 2020 10:10:15 -0400 Received: from sasha-vm.mshome.net (c-73-47-72-35.hsd1.nh.comcast.net [73.47.72.35]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id C8C1821D82; Sat, 18 Apr 2020 14:10:13 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1587219015; bh=8bPoquuPIG8DCqchvpjw9lTLeL0MKv0uYeSKMsQmhRQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=ABvp1WFoP+xmCsCQwAcxwjqNtmmchNSz/z1ha6cT+kNRP8aS/s5R5ol5QpY05HwMx E+KN4qi+9pL7fLy4VhYc9VaC3vY8dJgAiol5kbqrzlSGJF8wzF/07lHvzEj/cYlA8C yJMQyiVsyYKeWu6cijxY8lxA1JQbFTW8t8fbULW0= From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Changwei Ge , Andrew Morton , Joseph Qi , Mark Fasheh , Joel Becker , Junxiao Bi , Changwei Ge , Gang He , Jun Piao , Linus Torvalds , Sasha Levin , ocfs2-devel@oss.oracle.com Subject: [PATCH AUTOSEL 5.5 51/75] ocfs2: no need try to truncate file beyond i_size Date: Sat, 18 Apr 2020 10:08:46 -0400 Message-Id: <20200418140910.8280-51-sashal@kernel.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20200418140910.8280-1-sashal@kernel.org> References: <20200418140910.8280-1-sashal@kernel.org> MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Changwei Ge [ Upstream commit 783fda856e1034dee90a873f7654c418212d12d7 ] Linux fallocate(2) with FALLOC_FL_PUNCH_HOLE mode set, its offset can exceed the inode size. Ocfs2 now doesn't allow that offset beyond inode size. This restriction is not necessary and violates fallocate(2) semantics. If fallocate(2) offset is beyond inode size, just return success and do nothing further. Otherwise, ocfs2 will crash the kernel. kernel BUG at fs/ocfs2//alloc.c:7264! ocfs2_truncate_inline+0x20f/0x360 [ocfs2] ocfs2_remove_inode_range+0x23c/0xcb0 [ocfs2] __ocfs2_change_file_space+0x4a5/0x650 [ocfs2] ocfs2_fallocate+0x83/0xa0 [ocfs2] vfs_fallocate+0x148/0x230 SyS_fallocate+0x48/0x80 do_syscall_64+0x79/0x170 Signed-off-by: Changwei Ge Signed-off-by: Andrew Morton Reviewed-by: Joseph Qi Cc: Mark Fasheh Cc: Joel Becker Cc: Junxiao Bi Cc: Changwei Ge Cc: Gang He Cc: Jun Piao Cc: Link: http://lkml.kernel.org/r/20200407082754.17565-1-chge@linux.alibaba.com Signed-off-by: Linus Torvalds Signed-off-by: Sasha Levin --- fs/ocfs2/alloc.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/fs/ocfs2/alloc.c b/fs/ocfs2/alloc.c index 88534eb0e7c2a..3d5b6b989db26 100644 --- a/fs/ocfs2/alloc.c +++ b/fs/ocfs2/alloc.c @@ -7403,6 +7403,10 @@ int ocfs2_truncate_inline(struct inode *inode, struct buffer_head *di_bh, struct ocfs2_dinode *di = (struct ocfs2_dinode *)di_bh->b_data; struct ocfs2_inline_data *idata = &di->id2.i_data; + /* No need to punch hole beyond i_size. */ + if (start >= i_size_read(inode)) + return 0; + if (end > i_size_read(inode)) end = i_size_read(inode); -- 2.20.1