From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1757308Ab1IAAc6 (ORCPT ); Wed, 31 Aug 2011 20:32:58 -0400 Received: from e3.ny.us.ibm.com ([32.97.182.143]:45674 "EHLO e3.ny.us.ibm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752996Ab1IAAc4 (ORCPT ); Wed, 31 Aug 2011 20:32:56 -0400 Subject: [PATCH 14/16] ext4: Make inode checksum cover empty space To: Andreas Dilger , Theodore Tso , "Darrick J. Wong" From: "Darrick J. Wong" Cc: Sunil Mushran , Amir Goldstein , linux-kernel , Andi Kleen , Mingming Cao , Joel Becker , linux-fsdevel , linux-ext4@vger.kernel.org, Coly Li Date: Wed, 31 Aug 2011 17:32:07 -0700 Message-ID: <20110901003207.31048.55390.stgit@elm3c44.beaverton.ibm.com> In-Reply-To: <20110901003030.31048.99467.stgit@elm3c44.beaverton.ibm.com> References: <20110901003030.31048.99467.stgit@elm3c44.beaverton.ibm.com> User-Agent: StGit/0.15 MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Extend the inode checksum to cover the empty space between the end of the inode's data fields and the end of the space allocated for the inode. This enables us to cover extended attribute data that might live in the empty space. Signed-off-by: Darrick J. Wong --- fs/ext4/inode.c | 4 +--- 1 files changed, 1 insertions(+), 3 deletions(-) diff --git a/fs/ext4/inode.c b/fs/ext4/inode.c index 44a7f88..e24ba98 100644 --- a/fs/ext4/inode.c +++ b/fs/ext4/inode.c @@ -53,7 +53,6 @@ static __le32 ext4_inode_csum(struct inode *inode, struct ext4_inode *raw) { struct ext4_sb_info *sbi = EXT4_SB(inode->i_sb); - struct ext4_inode_info *ei = EXT4_I(inode); int offset = offsetof(struct ext4_inode, i_checksum); __le32 inum = cpu_to_le32(inode->i_ino); __u32 crc = 0; @@ -70,8 +69,7 @@ static __le32 ext4_inode_csum(struct inode *inode, struct ext4_inode *raw) crc = crc32c_le(crc, (__u8 *)raw, offset); offset += sizeof(raw->i_checksum); /* skip checksum */ crc = crc32c_le(crc, (__u8 *)raw + offset, - EXT4_GOOD_OLD_INODE_SIZE + ei->i_extra_isize - - offset); + EXT4_INODE_SIZE(inode->i_sb) - offset); return cpu_to_le32(crc); }