From patchwork Fri Feb 21 07:41:33 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Greg KH X-Patchwork-Id: 230802 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=-9.8 required=3.0 tests=DKIMWL_WL_HIGH, DKIM_SIGNED, DKIM_VALID, HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH, MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=unavailable 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 9A181C35642 for ; Fri, 21 Feb 2020 08:30:47 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 718FF20578 for ; Fri, 21 Feb 2020 08:30:47 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1582273847; bh=tHzSWHCdyVFWI5DrEYz+/oYVT8reW7bX7g380mK4cOs=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=IZH+njSlpD0rvsK/QKYpPOLPFxDqDgThqpa+YOelU9paUTX0trUyVpMHJAxmdMQg3 68X7imaAjLBeAbAoIROoQ/IOW8MArWCw127kajSRIWsWMKuEMB9XTAAHsWRUhHdAQQ 4DuupTbuBWppZ8tqtx5Qc+MscknxiZtvWkhJhnQU= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1733077AbgBUIPh (ORCPT ); Fri, 21 Feb 2020 03:15:37 -0500 Received: from mail.kernel.org ([198.145.29.99]:52444 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1732657AbgBUIPg (ORCPT ); Fri, 21 Feb 2020 03:15:36 -0500 Received: from localhost (83-86-89-107.cable.dynamic.v4.ziggo.nl [83.86.89.107]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 00B9C24670; Fri, 21 Feb 2020 08:15:34 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1582272935; bh=tHzSWHCdyVFWI5DrEYz+/oYVT8reW7bX7g380mK4cOs=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=AKo/AbW+GZdcOKzFC8KoJC6wznCJg+c/KbsCtRvMxE9ZqT0z/3nCsp7PZd0uqVTkH RdqV/QIUn//4WV0EoFmwuTdL3Z40dI4mRfmGFP6i9y2gavFU6EMjWQJE+XPz0dAPHl z9q9+9PVXK+95bUR1fL2dBsE335IZFN19rSJP99g= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, "zhangyi (F)" , Jan Kara , Theodore Tso , Sasha Levin Subject: [PATCH 5.4 294/344] jbd2: make sure ESHUTDOWN to be recorded in the journal superblock Date: Fri, 21 Feb 2020 08:41:33 +0100 Message-Id: <20200221072416.569187874@linuxfoundation.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200221072349.335551332@linuxfoundation.org> References: <20200221072349.335551332@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Sender: stable-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: stable@vger.kernel.org From: zhangyi (F) [ Upstream commit 0e98c084a21177ef136149c6a293b3d1eb33ff92 ] Commit fb7c02445c49 ("ext4: pass -ESHUTDOWN code to jbd2 layer") want to allow jbd2 layer to distinguish shutdown journal abort from other error cases. So the ESHUTDOWN should be taken precedence over any other errno which has already been recoded after EXT4_FLAGS_SHUTDOWN is set, but it only update errno in the journal suoerblock now if the old errno is 0. Fixes: fb7c02445c49 ("ext4: pass -ESHUTDOWN code to jbd2 layer") Signed-off-by: zhangyi (F) Reviewed-by: Jan Kara Link: https://lore.kernel.org/r/20191204124614.45424-4-yi.zhang@huawei.com Signed-off-by: Theodore Ts'o Signed-off-by: Sasha Levin --- fs/jbd2/journal.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/fs/jbd2/journal.c b/fs/jbd2/journal.c index 65e78d3a2f64c..c1ce2805c5639 100644 --- a/fs/jbd2/journal.c +++ b/fs/jbd2/journal.c @@ -2114,8 +2114,7 @@ static void __journal_abort_soft (journal_t *journal, int errno) if (journal->j_flags & JBD2_ABORT) { write_unlock(&journal->j_state_lock); - if (!old_errno && old_errno != -ESHUTDOWN && - errno == -ESHUTDOWN) + if (old_errno != -ESHUTDOWN && errno == -ESHUTDOWN) jbd2_journal_update_sb_errno(journal); return; }