Received: by 2002:a25:6193:0:0:0:0:0 with SMTP id v141csp1028312ybb; Wed, 8 Apr 2020 15:00:31 -0700 (PDT) X-Google-Smtp-Source: APiQypK2MtUT5M9AebQNUtyj7f4Hur0XFzLYni1Y6nDSk+GeBfWMu1I4gfw00WC04HvfrRBOkIHn X-Received: by 2002:aca:c596:: with SMTP id v144mr4263418oif.136.1586383231449; Wed, 08 Apr 2020 15:00:31 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1586383231; cv=none; d=google.com; s=arc-20160816; b=UpKFOjxRqQECHKqiR+h5OxBU3nJwyegQlhititXREZMR3Q2XPEXW6qqNvgfgScJalI VvwYx00WU3pgy/eZNIcvdh5R2p9blNMfS3iwRhRqn+oe5yXRhDmDc4DMZAeSE2oqS7id pYFpz0wOzUPnOFaEHV8KxjbqpzE0oaDVaYru82zh2NGJIpK1Wcd1piL+6NTQmICxVUtE nECHrZyz8PaG6ZSEFeYEJJEM5YrFHDyIznktysSA+0s4fibcX2t2/LMI+JgnRSOarlRw HQwnYEM+PSITPt6FzmFtQY4J0UniGTKfYPZtSySfY5mtRsbCE+PWd/EQyVhz9t//BbLp ZaeQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=zp897UpkuL2UU+LkHaSYhEJOVKSoljAk865Ib3Ff/78=; b=iuawMKjDLamojYSQMt4i1WApfg1qh8Up9Zw9AuQFBDBK4av1zbJKxAUSUJprYDg8fd RaD+mx407nTh6flop3LAEsXGiV/B8KWiqd0wjZTlLIepNBqaqheA++iZHvDavtRyWU55 rk9592ikmlVTzc7911MeSUYro6gjkM5HvN6l9NKtMKk/WTy45KM4cZxi7yV3Wnh+Dgbm XwqmU5L+C81+t5kUGnHpVUKDE42cEq1rdwcXFqCWo6l6Gnrk/GofGVrfpsVaKKBbfbVD TRk+k8KUpKqgw9WXzhKDrKeKkPIW79VhYuoHBhmk16ZtPMcx+yCUV2JtHttMvX7HxudG JxkA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=RyJSosRS; spf=pass (google.com: best guess record for domain of linux-ext4-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-ext4-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id i16si3210522otc.180.2020.04.08.15.00.19; Wed, 08 Apr 2020 15:00:31 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-ext4-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=RyJSosRS; spf=pass (google.com: best guess record for domain of linux-ext4-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-ext4-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726692AbgDHVzu (ORCPT + 99 others); Wed, 8 Apr 2020 17:55:50 -0400 Received: from mail-pl1-f196.google.com ([209.85.214.196]:44642 "EHLO mail-pl1-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726701AbgDHVzt (ORCPT ); Wed, 8 Apr 2020 17:55:49 -0400 Received: by mail-pl1-f196.google.com with SMTP id h11so3023144plr.11 for ; Wed, 08 Apr 2020 14:55:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=zp897UpkuL2UU+LkHaSYhEJOVKSoljAk865Ib3Ff/78=; b=RyJSosRSQBz0v9NfmaelwsBdj9d33WWyeZdmckVnh3x/7oo5n9l5Q3NZ7Y3ghKBGmP uf8JfPnvRf5K2qk+B8s1WDVBe01hSAklXaR2lJJ1zZ/MdaeqwinQzrWc8j3v3jal/WhC 9MlRRfjXtjFEuRmm96/DRLtrTmckuib69MD7kWTI581nd3ITxhxzUIBAOowCi3PhomKb S9bXV6zQn/OuYB/p4XSzC9ONF10yVya8I7ouJi6Ibogmw8D9P4y8NCaOKBFH8B844dRT cgiMa/C+HOxT2xApnVp2T/9Wq/Ptgv0JyuhgzFYJS1vCTYJ7G0xI0E1TO49vbT7GGkXb +hQg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=zp897UpkuL2UU+LkHaSYhEJOVKSoljAk865Ib3Ff/78=; b=tPituKCEXT2EU7Isjgy4IFrBhxxlK48dfM56bo9VPW+j3m6HzuJdPuH39mH93X2gpb qaTXFRGkQHyLepGBMxXWwwMWfL97FFnVHJK80yfg62uYQKh/dPq9+cK05KoKNoAyZv+M A43dYxyGIVZ1gIE7L0eypRvz//6JojF3vhRIPS0lsBDWENZGMQsA3+eOIqd4Ee52Pq+Y +qR54/pDua1tqHia03O83LKEttYMmpgHIt/g9Nnoxz7zjmJstzowS+dxevJmPssSu7ga M4VsWDdwjcdyje5QiSzRjI78GoPtksQB78WKHxow9KSLySYGq5XBUcfXRlz3t908kLL9 1cfA== X-Gm-Message-State: AGi0PuZa760T08EnDpWROLVmPatFVj4BjDH4aqGoPn0N+vSRHfR0cCWD VRZXN34G+0gp5yN3e/aCjlv64yHO X-Received: by 2002:a17:902:aa09:: with SMTP id be9mr7870207plb.341.1586382948457; Wed, 08 Apr 2020 14:55:48 -0700 (PDT) Received: from harshads-520.kir.corp.google.com ([2620:15c:17:10:6271:607:aca0:b6f7]) by smtp.googlemail.com with ESMTPSA id z7sm450929pju.37.2020.04.08.14.55.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 08 Apr 2020 14:55:47 -0700 (PDT) From: Harshad Shirwadkar X-Google-Original-From: Harshad Shirwadkar To: linux-ext4@vger.kernel.org Cc: tytso@mit.edu, Harshad Shirwadkar Subject: [PATCH v6 05/20] jbd2: disable fast commits if journal is empty Date: Wed, 8 Apr 2020 14:55:15 -0700 Message-Id: <20200408215530.25649-5-harshads@google.com> X-Mailer: git-send-email 2.26.0.110.g2183baf09c-goog In-Reply-To: <20200408215530.25649-1-harshads@google.com> References: <20200408215530.25649-1-harshads@google.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Sender: linux-ext4-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-ext4@vger.kernel.org From: Harshad Shirwadkar If journal is empty, clear the fast commit flag from the on disk superblock. With this optimization, chances of running into backward compatibility issues are reduced. Signed-off-by: Harshad Shirwadkar --- fs/jbd2/journal.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/fs/jbd2/journal.c b/fs/jbd2/journal.c index 79f015f7bf54..f8f55d0814ea 100644 --- a/fs/jbd2/journal.c +++ b/fs/jbd2/journal.c @@ -1482,6 +1482,7 @@ int jbd2_journal_update_sb_log_tail(journal_t *journal, tid_t tail_tid, static void jbd2_mark_journal_empty(journal_t *journal, int write_op) { journal_superblock_t *sb = journal->j_superblock; + bool had_fast_commit = false; BUG_ON(!mutex_is_locked(&journal->j_checkpoint_mutex)); lock_buffer(journal->j_sb_buffer); @@ -1495,9 +1496,20 @@ static void jbd2_mark_journal_empty(journal_t *journal, int write_op) sb->s_sequence = cpu_to_be32(journal->j_tail_sequence); sb->s_start = cpu_to_be32(0); + if (jbd2_has_feature_fast_commit(journal)) { + /* + * When journal is clean, no need to commit fast commit flag and + * make file system incompatible with older kernels. + */ + jbd2_clear_feature_fast_commit(journal); + had_fast_commit = true; + } jbd2_write_superblock(journal, write_op); + if (had_fast_commit) + jbd2_set_feature_fast_commit(journal); + /* Log is no longer empty */ write_lock(&journal->j_state_lock); journal->j_flags |= JBD2_FLUSHED; -- 2.26.0.110.g2183baf09c-goog