From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-13.0 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id BBE3BC433DF for ; Tue, 11 Aug 2020 11:45:39 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id A2949205CB for ; Tue, 11 Aug 2020 11:45:39 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728850AbgHKLpj (ORCPT ); Tue, 11 Aug 2020 07:45:39 -0400 Received: from mx2.suse.de ([195.135.220.15]:33168 "EHLO mx2.suse.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728663AbgHKLpi (ORCPT ); Tue, 11 Aug 2020 07:45:38 -0400 X-Virus-Scanned: by amavisd-new at test-mx.suse.de Received: from relay2.suse.de (unknown [195.135.221.27]) by mx2.suse.de (Postfix) with ESMTP id 6F67EAD75 for ; Tue, 11 Aug 2020 11:45:58 +0000 (UTC) From: Qu Wenruo To: linux-btrfs@vger.kernel.org Subject: [PATCH v2 2/4] btrfs-progs: check/original: don't reset extent generation for check_block() Date: Tue, 11 Aug 2020 19:44:49 +0800 Message-Id: <20200811114451.28862-3-wqu@suse.com> X-Mailer: git-send-email 2.28.0 In-Reply-To: <20200811114451.28862-1-wqu@suse.com> References: <20200811114451.28862-1-wqu@suse.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Sender: linux-btrfs-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-btrfs@vger.kernel.org In check_block(), we unconditionally reset extent_record::generation. This is in fact pretty correct, but this makes original mode fail to detect bad extent item geneartion. So change to behavior to set the geneartion if and only if the tree block generation is higher. Signed-off-by: Qu Wenruo --- check/main.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/check/main.c b/check/main.c index f93bd7d4ca70..72fa28ad216a 100644 --- a/check/main.c +++ b/check/main.c @@ -4440,7 +4440,8 @@ static int check_block(struct btrfs_root *root, if (!cache) return 1; rec = container_of(cache, struct extent_record, cache); - rec->generation = btrfs_header_generation(buf); + if (rec->generation < btrfs_header_generation(buf)) + rec->generation = btrfs_header_generation(buf); level = btrfs_header_level(buf); if (btrfs_header_nritems(buf) > 0) { -- 2.28.0