Received: by 2002:a05:6a10:af89:0:0:0:0 with SMTP id iu9csp3685317pxb; Mon, 24 Jan 2022 15:18:54 -0800 (PST) X-Google-Smtp-Source: ABdhPJzSr9gTSPx2OtKF4H/3qrTwX/WExgF/q1XAfOCaZO7qrXEJySRA9Q/fbv5cvMOtD8eU2ovH X-Received: by 2002:a63:a741:: with SMTP id w1mr13375759pgo.620.1643066333894; Mon, 24 Jan 2022 15:18:53 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1643066333; cv=none; d=google.com; s=arc-20160816; b=FDeAMZbgfEg0VB7XACTrL0aPH+yIux2xmhWYCCVAOV5hRIHFVoElWy3oFMoSsP5Bch cvOteLTCLUKOReTlac5N37oP64UCdU/Jl7tCrvghXRwrr2L8LWR8aLWpkrc4TerDfQIw E9UXOoYKtWRP4vP8XOiiqWNpUSu1xtCgVyWKCGSoj3VCPYd60GOVjECoXJdH6ZYx0tk1 00lcA0z3nqptVCKWfIjLileO6lzSZZsixNXIh/4TmvTXHHZLJD2KeLBTuIKvwI1Nb1Ls +uWehBCtNQapaAKrDS9fmBjdD6E5NFJH5ZWtSS9/5nCQCcAuxTcw8MX6L3cMxxignXcn v1dw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=l2hbM7Nj5/iJ/8GeRwpm/IxzyScfXaFNID3aDY1a3sE=; b=EwteJPNLu7Foe7KfH+QiZl6N+ZuxicYf+y667QyquhkDuTCCIFZxdZTSFFD/26ZBvC +qY31jWxOvhTXOBqI7GMGhc9Lmt1Ue2z8egBZTz/HtNgFyLTZKmgbQ0YLDwu4sVkHbWJ C8Vtq+8UZ26UtFxVYhf5PayAp6HqlS0ujDOctUHEwk4Wm8qeWMW9nQ/jGmGRz/g6y5sY Wx1Ioy30yJTz+bLAmILLBajz5ThP+tJzHgY8XrJgiQDlA3YHPS0ybIS5wpJsZjaM5+XI KlycuujRB6m8iB6ekISvmrGI5D5gmXbkc15atfErLCXxEYcVGsoN63smiApa4cQe9ewI xEEA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=fGzmYoZi; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id q4si13149410pln.98.2022.01.24.15.18.42; Mon, 24 Jan 2022 15:18:53 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=fGzmYoZi; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1846566AbiAXXQW (ORCPT + 99 others); Mon, 24 Jan 2022 18:16:22 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36276 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1583311AbiAXWRm (ORCPT ); Mon, 24 Jan 2022 17:17:42 -0500 Received: from ams.source.kernel.org (ams.source.kernel.org [IPv6:2604:1380:4601:e00::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 02C08C0613BA; Mon, 24 Jan 2022 12:48:59 -0800 (PST) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ams.source.kernel.org (Postfix) with ESMTPS id B0841B8122A; Mon, 24 Jan 2022 20:48:58 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id D7091C340E5; Mon, 24 Jan 2022 20:48:56 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1643057337; bh=K9f0ucON4kLdNdqnPBrGZBG4X1mCAoiYAWsZ0Ti78yY=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=fGzmYoZiKxI6U724LEWCs0EjFhH7WUaCFOngI4Kqu6tf1sKqcn/d0sAKPdbR0Mbph /cajU1GjSexmxFfHF8mwEEH0+C+RUxZpeKfp5VKVzuPHqmClWKN5eUGfHQXAnkZl9R aUDD1nT/SI2w5rARIp286fS7qUpCBRBGpGvLVurI= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Chao Yu , Jaegeuk Kim Subject: [PATCH 5.15 779/846] f2fs: fix to avoid panic in is_alive() if metadata is inconsistent Date: Mon, 24 Jan 2022 19:44:56 +0100 Message-Id: <20220124184127.823779589@linuxfoundation.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20220124184100.867127425@linuxfoundation.org> References: <20220124184100.867127425@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Chao Yu commit f6db43076d190d9bf75559dec28e18b9d12e4ce5 upstream. As report by Wenqing Liu in bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=215231 If we enable CONFIG_F2FS_CHECK_FS config, and with fuzzed image attached in above link, we will encounter panic when executing below script: 1. mkdir mnt 2. mount -t f2fs tmp1.img mnt 3. touch tmp F2FS-fs (loop11): mismatched blkaddr 5765 (source_blkaddr 1) in seg 3 kernel BUG at fs/f2fs/gc.c:1042! do_garbage_collect+0x90f/0xa80 [f2fs] f2fs_gc+0x294/0x12a0 [f2fs] f2fs_balance_fs+0x2c5/0x7d0 [f2fs] f2fs_create+0x239/0xd90 [f2fs] lookup_open+0x45e/0xa90 open_last_lookups+0x203/0x670 path_openat+0xae/0x490 do_filp_open+0xbc/0x160 do_sys_openat2+0x2f1/0x500 do_sys_open+0x5e/0xa0 __x64_sys_openat+0x28/0x40 Previously, f2fs tries to catch data inconcistency exception in between SSA and SIT table during GC, however once the exception is caught, it will call f2fs_bug_on to hang kernel, it's not needed, instead, let's set SBI_NEED_FSCK flag and skip migrating current block. Fixes: bbf9f7d90f21 ("f2fs: Fix indefinite loop in f2fs_gc()") Signed-off-by: Chao Yu Signed-off-by: Jaegeuk Kim Signed-off-by: Greg Kroah-Hartman --- fs/f2fs/gc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) --- a/fs/f2fs/gc.c +++ b/fs/f2fs/gc.c @@ -1039,7 +1039,7 @@ static bool is_alive(struct f2fs_sb_info if (!test_and_set_bit(segno, SIT_I(sbi)->invalid_segmap)) { f2fs_err(sbi, "mismatched blkaddr %u (source_blkaddr %u) in seg %u", blkaddr, source_blkaddr, segno); - f2fs_bug_on(sbi, 1); + set_sbi_flag(sbi, SBI_NEED_FSCK); } } #endif