From patchwork Mon Jun 22 18:41:12 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Darrick Wong X-Patchwork-Id: 487325 Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 19A781401AB for ; Tue, 23 Jun 2015 04:42:42 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751611AbbFVSlY (ORCPT ); Mon, 22 Jun 2015 14:41:24 -0400 Received: from aserp1040.oracle.com ([141.146.126.69]:44713 "EHLO aserp1040.oracle.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751022AbbFVSlR (ORCPT ); Mon, 22 Jun 2015 14:41:17 -0400 Received: from userv0022.oracle.com (userv0022.oracle.com [156.151.31.74]) by aserp1040.oracle.com (Sentrion-MTA-4.3.2/Sentrion-MTA-4.3.2) with ESMTP id t5MIfFZZ004921 (version=TLSv1 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Mon, 22 Jun 2015 18:41:15 GMT Received: from aserv0122.oracle.com (aserv0122.oracle.com [141.146.126.236]) by userv0022.oracle.com (8.13.8/8.13.8) with ESMTP id t5MIfE0e031346 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=FAIL); Mon, 22 Jun 2015 18:41:14 GMT Received: from abhmp0010.oracle.com (abhmp0010.oracle.com [141.146.116.16]) by aserv0122.oracle.com (8.13.8/8.13.8) with ESMTP id t5MIfEBH000452; Mon, 22 Jun 2015 18:41:14 GMT Received: from localhost (/24.21.154.84) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Mon, 22 Jun 2015 11:41:14 -0700 Date: Mon, 22 Jun 2015 11:41:12 -0700 From: "Darrick J. Wong" To: tytso@mit.edu Cc: linux-ext4@vger.kernel.org Subject: [PATCH] e2fsck: check htree leaf block checksums Message-ID: <20150622184112.GF7063@birch.djwong.org> MIME-Version: 1.0 Content-Disposition: inline User-Agent: Mutt/1.5.21 (2010-09-15) X-Source-IP: userv0022.oracle.com [156.151.31.74] Sender: linux-ext4-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-ext4@vger.kernel.org We weren't verifying the checksum of an htree leaf block due to a coding error that marked all htree blocks as not having checksums. While we're at it, fix the error message that gets displayed so that it doesn't print a meaningless block offset. Signed-off-by: Darrick J. Wong --- e2fsck/pass2.c | 2 +- e2fsck/problem.c | 2 +- tests/f_dir_bad_csum/expect.1 | 2 +- tests/f_htree_leaf_csum/expect.1 | 12 ++++++++++++ tests/f_htree_leaf_csum/expect.2 | 7 +++++++ tests/f_htree_leaf_csum/image.gz | Bin tests/f_htree_leaf_csum/name | 1 + 7 files changed, 23 insertions(+), 3 deletions(-) create mode 100644 tests/f_htree_leaf_csum/expect.1 create mode 100644 tests/f_htree_leaf_csum/expect.2 create mode 100644 tests/f_htree_leaf_csum/image.gz create mode 100644 tests/f_htree_leaf_csum/name -- To unsubscribe from this list: send the line "unsubscribe linux-ext4" in diff --git a/e2fsck/pass2.c b/e2fsck/pass2.c index ecc0aaa..3a91e98 100644 --- a/e2fsck/pass2.c +++ b/e2fsck/pass2.c @@ -1085,7 +1085,7 @@ inline_read_fail: ((fs->blocksize - (8 + dx_csum_size)) / sizeof(struct ext2_dx_entry)))) dx_db->type = DX_DIRBLOCK_NODE; - is_leaf = 0; + is_leaf = (dx_db->type == DX_DIRBLOCK_LEAF); } out_htree: #endif /* ENABLE_HTREE */ diff --git a/e2fsck/problem.c b/e2fsck/problem.c index 80c6492..5916d01 100644 --- a/e2fsck/problem.c +++ b/e2fsck/problem.c @@ -1597,7 +1597,7 @@ static struct e2fsck_problem problem_table[] = { /* leaf node passes checks but fails checksum */ { PR_2_LEAF_NODE_ONLY_CSUM_INVALID, - N_("@d @i %i, %B, offset %N: @d passes checks but fails checksum.\n"), + N_("@d @i %i, %B: @d passes checks but fails checksum.\n"), PROMPT_FIX, PR_PREEN_OK }, /* inline directory inode size must be a multiple of 4 */ diff --git a/tests/f_dir_bad_csum/expect.1 b/tests/f_dir_bad_csum/expect.1 index b2b2fae..94e72da 100644 --- a/tests/f_dir_bad_csum/expect.1 +++ b/tests/f_dir_bad_csum/expect.1 @@ -1,6 +1,6 @@ Pass 1: Checking inodes, blocks, and sizes Pass 2: Checking directory structure -Directory inode 12, block #0, offset 12: directory passes checks but fails checksum. +Directory inode 12, block #0: directory passes checks but fails checksum. Fix? yes Directory inode 13, block #0, offset 0: directory has no checksum. diff --git a/tests/f_htree_leaf_csum/expect.1 b/tests/f_htree_leaf_csum/expect.1 new file mode 100644 index 0000000..d6b179e --- /dev/null +++ b/tests/f_htree_leaf_csum/expect.1 @@ -0,0 +1,12 @@ +Pass 1: Checking inodes, blocks, and sizes +Pass 2: Checking directory structure +Directory inode 12, block #1: directory passes checks but fails checksum. +Fix? yes + +Pass 3: Checking directory connectivity +Pass 4: Checking reference counts +Pass 5: Checking group summary information + +test_filesys: ***** FILE SYSTEM WAS MODIFIED ***** +test_filesys: 430/512 files (0.2% non-contiguous), 45/512 blocks +Exit status is 1 diff --git a/tests/f_htree_leaf_csum/expect.2 b/tests/f_htree_leaf_csum/expect.2 new file mode 100644 index 0000000..1609785 --- /dev/null +++ b/tests/f_htree_leaf_csum/expect.2 @@ -0,0 +1,7 @@ +Pass 1: Checking inodes, blocks, and sizes +Pass 2: Checking directory structure +Pass 3: Checking directory connectivity +Pass 4: Checking reference counts +Pass 5: Checking group summary information +test_filesys: 430/512 files (0.2% non-contiguous), 45/512 blocks +Exit status is 0 diff --git a/tests/f_htree_leaf_csum/image.gz b/tests/f_htree_leaf_csum/image.gz new file mode 100644 index 0000000000000000000000000000000000000000..f2e461990c095b045750eb6fb657e660a1a360e5 GIT binary patch literal 15906 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 S0MPgvf}CqRR;}8*>VE)5>UBZ@ literal 0 HcmV?d00001 diff --git a/tests/f_htree_leaf_csum/name b/tests/f_htree_leaf_csum/name new file mode 100644 index 0000000..43c6ada --- /dev/null +++ b/tests/f_htree_leaf_csum/name @@ -0,0 +1 @@ +bad csum in htree leaf block