Received: by 2002:a25:ab43:0:0:0:0:0 with SMTP id u61csp278589ybi; Fri, 24 May 2019 03:47:04 -0700 (PDT) X-Google-Smtp-Source: APXvYqybuEizoVJ3ZsebcfmLrhx0tN/NCPt6AsasAjIE4mXgbSuF8F3Dg+BF7xXGYdFky1Cg79C0 X-Received: by 2002:a63:4621:: with SMTP id t33mr103755490pga.246.1558694824808; Fri, 24 May 2019 03:47:04 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1558694824; cv=none; d=google.com; s=arc-20160816; b=L0aPCflA1HtkHngrUSMuMGcAtrk63FP7/nV3PS3WmlFJkW3PgKl9ecNDaHiSMbmQ6z +6d6Yxe+3nqEk4VeQTd0+yxGNOnbjvTCfUCQkCADi6qoOB4DoLz9xCf8f9ZBxfsyumUg YM5QosWYIq+5YFp7uVjwyEoozPXZoFANYp3xlJNEuCKF/pVXGj7dc9rApuvQAPiVJc1e 4umUOUeTnZeVH/ixtcF7XOI6S93iChjBInLnGM/GUJMgU2WjfIdLMHvMwochEIGR/Ru4 SaYm8l09ScCQwlv3BV2o8oXPHYxv0Sok0MCGbRvMoCKrKZwzlOyCQW/GaN5SQpys/dus XKig== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:message-id:date:subject:cc:to:from :dmarc-filter:dkim-signature:dkim-signature; bh=0gW3Ntr4OUYMFMNtazk4UAD+I2a2PngPrYU/RCJOnFU=; b=NhWlGZGCIYk7G2zUbf3VHRZN/EnrKlwxKmJpPi9Alq1LM+x4AtgMVvPpQ9EgFJkylu yRp5I+979eOddwfRlqwS4940KZLOBWBhcuXsC5j4rB9tSzfZMNJlkEaBDkxajKxi7ag6 GhvEu0vc7NyIwbTXDjckgi+GoX6Q/mYKcvGo9mf3XjGzj4ciJl3U7T9RCpLaow5//7+B oejfjR3wCcIbKskfE85hHCezOW5LSzcA99XtZ+a2fpRn/rc8OD5TObHBdELXQ78bL5AA PTVdi76/CcjZ+8SxmO0FcFTpQTotUfp0hAovIfz+0Bcx+RS63dp8hmsjxaYvrvnNZupC VHyg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@codeaurora.org header.s=default header.b=NCJDg9xp; dkim=pass header.i=@codeaurora.org header.s=default header.b=KbvxFmnv; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id r15si3578340pfq.169.2019.05.24.03.46.48; Fri, 24 May 2019 03:47:04 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-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=@codeaurora.org header.s=default header.b=NCJDg9xp; dkim=pass header.i=@codeaurora.org header.s=default header.b=KbvxFmnv; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2390817AbfEXKoG (ORCPT + 99 others); Fri, 24 May 2019 06:44:06 -0400 Received: from smtp.codeaurora.org ([198.145.29.96]:49232 "EHLO smtp.codeaurora.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2390578AbfEXKoG (ORCPT ); Fri, 24 May 2019 06:44:06 -0400 Received: by smtp.codeaurora.org (Postfix, from userid 1000) id EF415611FC; Fri, 24 May 2019 10:44:04 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=codeaurora.org; s=default; t=1558694645; bh=HF7FUic2Qgap5t9eKuxI7oyYoQWtLjSkiQ9P+5lmjgA=; h=From:To:Cc:Subject:Date:From; b=NCJDg9xpM3m7Tr78OqD7WJBPCTV8Eaq/qGbuC7+HQaM/CIZOJP4tORbuXzvsqFjKW E++8fOAhFf+BJxjR9J3Iu3ijtsVhQHgaJOj44V+MvrJwXTxarGdtaeoPURC3/ww+GF MuBmCRdMXuF0XKAhzZLNaZ39DH9rxeufjzoh6RcQ= X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on pdx-caf-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-2.7 required=2.0 tests=ALL_TRUSTED,BAYES_00, DKIM_INVALID,DKIM_SIGNED,SPF_NONE autolearn=no autolearn_force=no version=3.4.0 Received: from codeaurora.org (blr-c-bdr-fw-01_globalnat_allzones-outside.qualcomm.com [103.229.19.19]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-SHA256 (128/128 bits)) (No client certificate requested) (Authenticated sender: stummala@smtp.codeaurora.org) by smtp.codeaurora.org (Postfix) with ESMTPSA id 3EAFB60C5F; Fri, 24 May 2019 10:44:01 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=codeaurora.org; s=default; t=1558694644; bh=HF7FUic2Qgap5t9eKuxI7oyYoQWtLjSkiQ9P+5lmjgA=; h=From:To:Cc:Subject:Date:From; b=KbvxFmnvnO6HucGm9IgtDjyI71UXjCLu9Fa0t4OsNNZV3YlobN6ZhhNvIOGA6ZQxB n2VgvVUOv0xlRf6L28u+vkxgHON1z1O5JR9HY/vs96NLaE+cT0e+HUP3bapWuQL02e g3QZW3sy3nJ2pkA0dIwv2EVIyl1oZNz2z0KpdZgc= DMARC-Filter: OpenDMARC Filter v1.3.2 smtp.codeaurora.org 3EAFB60C5F Authentication-Results: pdx-caf-mail.web.codeaurora.org; dmarc=none (p=none dis=none) header.from=codeaurora.org Authentication-Results: pdx-caf-mail.web.codeaurora.org; spf=none smtp.mailfrom=stummala@codeaurora.org From: Sahitya Tummala To: Jaegeuk Kim , Chao Yu , linux-f2fs-devel@lists.sourceforge.net Cc: Sahitya Tummala , linux-kernel@vger.kernel.org Subject: [PATCH] f2fs: add errors=panic mount option Date: Fri, 24 May 2019 16:13:51 +0530 Message-Id: <1558694631-12481-1-git-send-email-stummala@codeaurora.org> X-Mailer: git-send-email 1.9.1 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Add errors=panic mount option for debugging purpose. It can be set dynamically when the config option CONFIG_F2FS_CHECK_FS is not enabled. Signed-off-by: Sahitya Tummala --- fs/f2fs/f2fs.h | 9 +++++++-- fs/f2fs/super.c | 21 +++++++++++++++++++++ 2 files changed, 28 insertions(+), 2 deletions(-) diff --git a/fs/f2fs/f2fs.h b/fs/f2fs/f2fs.h index 9b3d997..95adedb 100644 --- a/fs/f2fs/f2fs.h +++ b/fs/f2fs/f2fs.h @@ -32,8 +32,12 @@ #define f2fs_bug_on(sbi, condition) \ do { \ if (unlikely(condition)) { \ - WARN_ON(1); \ - set_sbi_flag(sbi, SBI_NEED_FSCK); \ + if (test_opt(sbi, ERRORS_PANIC)) { \ + BUG_ON(condition); \ + } else { \ + WARN_ON(1); \ + set_sbi_flag(sbi, SBI_NEED_FSCK); \ + } \ } \ } while (0) #endif @@ -99,6 +103,7 @@ struct f2fs_fault_info { #define F2FS_MOUNT_INLINE_XATTR_SIZE 0x00800000 #define F2FS_MOUNT_RESERVE_ROOT 0x01000000 #define F2FS_MOUNT_DISABLE_CHECKPOINT 0x02000000 +#define F2FS_MOUNT_ERRORS_PANIC 0x04000000 #define F2FS_OPTION(sbi) ((sbi)->mount_opt) #define clear_opt(sbi, option) (F2FS_OPTION(sbi).opt &= ~F2FS_MOUNT_##option) diff --git a/fs/f2fs/super.c b/fs/f2fs/super.c index 912e261..7d6d96a 100644 --- a/fs/f2fs/super.c +++ b/fs/f2fs/super.c @@ -137,6 +137,7 @@ enum { Opt_fsync, Opt_test_dummy_encryption, Opt_checkpoint, + Opt_errors, Opt_err, }; @@ -196,6 +197,7 @@ enum { {Opt_fsync, "fsync_mode=%s"}, {Opt_test_dummy_encryption, "test_dummy_encryption"}, {Opt_checkpoint, "checkpoint=%s"}, + {Opt_errors, "errors=%s"}, {Opt_err, NULL}, }; @@ -788,6 +790,23 @@ static int parse_options(struct super_block *sb, char *options) } kvfree(name); break; + case Opt_errors: +#ifndef CONFIG_F2FS_CHECK_FS + name = match_strdup(&args[0]); + if (!name) + return -ENOMEM; + + if (strlen(name) == 5 && !strncmp(name, "panic", 5)) { + set_opt(sbi, ERRORS_PANIC); + } else { + kvfree(name); + return -EINVAL; + } + kvfree(name); + f2fs_msg(sb, KERN_INFO, + "debug mode errors=panic enabled\n"); +#endif + break; default: f2fs_msg(sb, KERN_ERR, "Unrecognized mount option \"%s\" or missing value", @@ -1417,6 +1436,8 @@ static int f2fs_show_options(struct seq_file *seq, struct dentry *root) seq_printf(seq, ",fsync_mode=%s", "strict"); else if (F2FS_OPTION(sbi).fsync_mode == FSYNC_MODE_NOBARRIER) seq_printf(seq, ",fsync_mode=%s", "nobarrier"); + if (test_opt(sbi, ERRORS_PANIC)) + seq_printf(seq, ",errors=%s", "panic"); return 0; } -- Qualcomm India Private Limited, on behalf of Qualcomm Innovation Center, Inc. Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, a Linux Foundation Collaborative Project.