Received: by 2002:a05:6a10:16a7:0:0:0:0 with SMTP id gp39csp800693pxb; Tue, 3 Nov 2020 12:55:06 -0800 (PST) X-Google-Smtp-Source: ABdhPJyQnAxzIrC0zPtZEiwHWG6M503LYudKXwfEnZuVqIv1G4EfzLbJGfFtk+fNEBE5xjOzW8yb X-Received: by 2002:a05:6402:1119:: with SMTP id u25mr24830255edv.37.1604436906607; Tue, 03 Nov 2020 12:55:06 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1604436906; cv=none; d=google.com; s=arc-20160816; b=r0/IKRsxlgmOha31OI0qL5WBSZHlIto/wQdpejV4DFYqg+AWpu8vQyZPj2EUZW+8x7 pNUpWLUNzaSRLLPqNDi46YM/07R/a+d/JXUEvv+HHNpdwIyP6vlTLubJjSwkWs2mCe1m cbNPgjzclVXc0N/gJP5JwZR+SAg2pa0ppJXq3lDIL6PuiqLyVidMWQane36R7rZC8RJh dbCiAUzJbublSKEb+XDbgcVyZWMceP2JPzBhIQtHxWRsWLGo9QX82+7kgT+GRbc3Zk8S vIlG0O0P0BJOCj22Q8U5ElEm6OXPMmK2/tQOBsh3rTqnsLcevrnyJdz8+x7Rj+kRkwqs zddw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=8WzmsUl2okJmk59jSqVUcjThbh80vsP/ypfJRP0W5Zw=; b=aE4v3iq3LAVenFSSrKcCYnj20P9WTM3PrI3vK53d7ArrhGuiho12aLQ7zMevnXr2KI kcsDFElWleiMUagWiY9I08tcjadI5JZukgfOxLTwB8mLCcpR7f3b56wPCY6w2botZ9o6 GNR3cVLTMEncDA/op75YK1hQnK10v5dX6qlDnkj4L3K3DX+eJnxO1dCah3zaab7sjmAg cB+x9kTHpyb4EQpTzhNHJT3BVcX7Wq41StXbUSA2N2xBYK0ZpRlA1D0XjfYWykXoj6qy rg5zrYiJihrwg5ayPxd6GN9/EAOsNdJlQBLolHwHOo6UlJrlKz2EHB9Uo0TD2oOXIXzR 7ORQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=ovYslY7w; 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=fail (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id d18si13741223edx.345.2020.11.03.12.54.43; Tue, 03 Nov 2020 12:55:06 -0800 (PST) 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=ovYslY7w; 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=fail (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1731363AbgKCUvK (ORCPT + 99 others); Tue, 3 Nov 2020 15:51:10 -0500 Received: from mail.kernel.org ([198.145.29.99]:45864 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1731362AbgKCUvH (ORCPT ); Tue, 3 Nov 2020 15:51:07 -0500 Received: from localhost (83-86-74-64.cable.dynamic.v4.ziggo.nl [83.86.74.64]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 9114220719; Tue, 3 Nov 2020 20:51:06 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1604436667; bh=wiBx9A2lhebuSmXPGder/2NCRifMq+OyrZyXrFNON5E=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=ovYslY7wGskhWaY6Byltkuq53kKV93KZJpIo9Cpck53SBj5wTDr9pyqMioIrUhT7X 5M2PH+S5sXwc4/sMLUQ8Amr+sjq6yJbi5Vnu/Q6dn210JVVUGHxk3LmJzf39ebYvnb jVt8psHTZ89+b0/cF0u71+c7/0aEBXpLP3T6pE58= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, stable@kernel.org, Luo Meng , "Darrick J. Wong" , Theodore Tso Subject: [PATCH 5.9 343/391] ext4: fix invalid inode checksum Date: Tue, 3 Nov 2020 21:36:34 +0100 Message-Id: <20201103203410.282363210@linuxfoundation.org> X-Mailer: git-send-email 2.29.2 In-Reply-To: <20201103203348.153465465@linuxfoundation.org> References: <20201103203348.153465465@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Luo Meng commit 1322181170bb01bce3c228b82ae3d5c6b793164f upstream. During the stability test, there are some errors: ext4_lookup:1590: inode #6967: comm fsstress: iget: checksum invalid. If the inode->i_iblocks too big and doesn't set huge file flag, checksum will not be recalculated when update the inode information to it's buffer. If other inode marks the buffer dirty, then the inconsistent inode will be flushed to disk. Fix this problem by checking i_blocks in advance. Cc: stable@kernel.org Signed-off-by: Luo Meng Reviewed-by: Darrick J. Wong Link: https://lore.kernel.org/r/20201020013631.3796673-1-luomeng12@huawei.com Signed-off-by: Theodore Ts'o Signed-off-by: Greg Kroah-Hartman --- fs/ext4/inode.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) --- a/fs/ext4/inode.c +++ b/fs/ext4/inode.c @@ -4982,6 +4982,12 @@ static int ext4_do_update_inode(handle_t if (ext4_test_inode_state(inode, EXT4_STATE_NEW)) memset(raw_inode, 0, EXT4_SB(inode->i_sb)->s_inode_size); + err = ext4_inode_blocks_set(handle, raw_inode, ei); + if (err) { + spin_unlock(&ei->i_raw_lock); + goto out_brelse; + } + raw_inode->i_mode = cpu_to_le16(inode->i_mode); i_uid = i_uid_read(inode); i_gid = i_gid_read(inode); @@ -5015,11 +5021,6 @@ static int ext4_do_update_inode(handle_t EXT4_INODE_SET_XTIME(i_atime, inode, raw_inode); EXT4_EINODE_SET_XTIME(i_crtime, ei, raw_inode); - err = ext4_inode_blocks_set(handle, raw_inode, ei); - if (err) { - spin_unlock(&ei->i_raw_lock); - goto out_brelse; - } raw_inode->i_dtime = cpu_to_le32(ei->i_dtime); raw_inode->i_flags = cpu_to_le32(ei->i_flags & 0xFFFFFFFF); if (likely(!test_opt2(inode->i_sb, HURD_COMPAT)))