From patchwork Wed May 30 12:51:17 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jan Kara X-Patchwork-Id: 922786 Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=linux-ext4-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=suse.cz Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 40wr7x2LGRz9s1R for ; Wed, 30 May 2018 22:51:41 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753182AbeE3Mvd (ORCPT ); Wed, 30 May 2018 08:51:33 -0400 Received: from mx2.suse.de ([195.135.220.15]:46692 "EHLO mx2.suse.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753299AbeE3Mv1 (ORCPT ); Wed, 30 May 2018 08:51:27 -0400 X-Virus-Scanned: by amavisd-new at test-mx.suse.de Received: from relay1.suse.de (charybdis-ext-too.suse.de [195.135.220.254]) by mx2.suse.de (Postfix) with ESMTP id CC9D0AEEA; Wed, 30 May 2018 12:51:24 +0000 (UTC) Received: by quack2.suse.cz (Postfix, from userid 1000) id 4C9EF1E122E; Wed, 30 May 2018 14:51:24 +0200 (CEST) From: Jan Kara To: Ted Tso Cc: , Jan Kara Subject: [PATCH 09/10] ext2fs: Don't check s_inodes_count with EXT2_FLAG_IGNORE_SB_ERRORS Date: Wed, 30 May 2018 14:51:17 +0200 Message-Id: <20180530125118.25274-10-jack@suse.cz> X-Mailer: git-send-email 2.13.6 In-Reply-To: <20180530125118.25274-1-jack@suse.cz> References: <20180530125118.25274-1-jack@suse.cz> Sender: linux-ext4-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-ext4@vger.kernel.org Don't verify s_inodes_count is correct with EXT2_FLAG_IGNORE_SB_ERRORS flag set. This allows e2fsck and debugfs to fix this value. Signed-off-by: Jan Kara Reviewed-by: Andreas Dilger --- lib/ext2fs/openfs.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/ext2fs/openfs.c b/lib/ext2fs/openfs.c index e9ad0cd1a2c6..d046b2517505 100644 --- a/lib/ext2fs/openfs.c +++ b/lib/ext2fs/openfs.c @@ -386,7 +386,8 @@ errcode_t ext2fs_open2(const char *name, const char *io_options, goto cleanup; } fs->group_desc_count = groups_cnt; - if ((__u64)fs->group_desc_count * EXT2_INODES_PER_GROUP(fs->super) != + if (!(flags & EXT2_FLAG_IGNORE_SB_ERRORS) && + (__u64)fs->group_desc_count * EXT2_INODES_PER_GROUP(fs->super) != fs->super->s_inodes_count) { retval = EXT2_ET_CORRUPT_SUPERBLOCK; goto cleanup;