[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20190426130913.9288-1-c17828@cray.com>
Date: Fri, 26 Apr 2019 16:09:13 +0300
From: Artem Blagodarenko <artem.blagodarenko@...il.com>
To: linux-ext4@...r.kernel.org
Cc: alexey.lyashkov@...il.com, Alexey Lyashkov <c17817@...y.com>
Subject: [PATCH] e2fsck: Do not to be quiet if verbose option used.
From: Alexey Lyashkov <c17817@...y.com>
e2fsck don't print a message if 'p' option used and error can be fixed without
user assistance, but 'v' option asks to be more verbose, so user expect to
see any output. But not.
Fix this, by avoid message suppress with verbose option used.
Change-Id: I358e9b04e44dd33fdb124c5663b2df0bf54ce370
Signed-off-by: Alexey Lyashkov <c17817@...y.com>
Cray-bug-id: LUS-6890
---
e2fsck/e2fsck.h | 1 +
e2fsck/problem.c | 3 ++-
e2fsck/unix.c | 15 ++++++++-------
3 files changed, 11 insertions(+), 8 deletions(-)
diff --git a/e2fsck/e2fsck.h b/e2fsck/e2fsck.h
index 1c7a67cb..64140fc3 100644
--- a/e2fsck/e2fsck.h
+++ b/e2fsck/e2fsck.h
@@ -174,6 +174,7 @@ struct resource_track {
#define E2F_OPT_NOOPT_EXTENTS 0x10000 /* don't optimize extents */
#define E2F_OPT_ICOUNT_FULLMAP 0x20000 /* use an array for inode counts */
#define E2F_OPT_UNSHARE_BLOCKS 0x40000
+#define E2F_OPT_VERBOSE 0x80000 /* be verbose and PREEN_NOMSG ignore */
/*
* E2fsck flags
diff --git a/e2fsck/problem.c b/e2fsck/problem.c
index 0e6bacec..2576c9bb 100644
--- a/e2fsck/problem.c
+++ b/e2fsck/problem.c
@@ -2259,7 +2259,8 @@ int fix_problem(e2fsck_t ctx, problem_t code, struct problem_context *pctx)
if (ldesc->flags & PRL_SUPPRESS)
suppress++;
}
- if ((ptr->flags & PR_PREEN_NOMSG) &&
+ if (((ctx->options & E2F_OPT_VERBOSE) == 0) &&
+ (ptr->flags & PR_PREEN_NOMSG) &&
(ctx->options & E2F_OPT_PREEN))
suppress++;
if ((ptr->flags & PR_NO_NOMSG) &&
diff --git a/e2fsck/unix.c b/e2fsck/unix.c
index 5b3552ec..b073615e 100644
--- a/e2fsck/unix.c
+++ b/e2fsck/unix.c
@@ -60,7 +60,6 @@ extern int optind;
/* Command line options */
static int cflag; /* check disk */
static int show_version_only;
-static int verbose;
static int replace_bad_blocks;
static int keep_bad_blocks;
@@ -133,7 +132,7 @@ static void show_stats(e2fsck_t ctx)
frag_percent_total = (frag_percent_total + 5) / 10;
}
- if (!verbose) {
+ if ((ctx->options & E2F_OPT_VERBOSE) == 0) {
log_out(ctx, _("%s: %u/%u files (%0d.%d%% non-contiguous), "
"%llu/%llu blocks\n"),
ctx->device_name, inodes_used, inodes,
@@ -143,7 +142,7 @@ static void show_stats(e2fsck_t ctx)
}
profile_get_boolean(ctx->profile, "options", "report_features", 0, 0,
&i);
- if (verbose && i) {
+ if ((ctx->options & E2F_OPT_VERBOSE) && i) {
log_out(ctx, "\nFilesystem features:");
mask = &ctx->fs->super->s_feature_compat;
for (i = 0; i < 3; i++, mask++) {
@@ -807,6 +806,7 @@ static errcode_t PRS(int argc, char *argv[], e2fsck_t *ret_ctx)
char *jbd_debug;
#endif
unsigned long long phys_mem_kb;
+ int verbose = 0;
retval = e2fsck_allocate_context(&ctx);
if (retval)
@@ -1037,8 +1037,8 @@ static errcode_t PRS(int argc, char *argv[], e2fsck_t *ret_ctx)
ctx->options |= E2F_OPT_TIME | E2F_OPT_TIME2;
profile_get_boolean(ctx->profile, "options", "report_verbose", 0, 0,
&c);
- if (c)
- verbose = 1;
+ if (c || verbose)
+ ctx->options |= E2F_OPT_VERBOSE;
profile_get_boolean(ctx->profile, "options", "no_optimize_extents",
0, 0, &c);
@@ -1231,8 +1231,9 @@ static errcode_t e2fsck_check_mmp(ext2_filsys fs, e2fsck_t ctx)
if (retval)
goto check_error;
- /* Print warning if e2fsck will wait for more than 20 secs. */
- if (verbose || wait_time > EXT4_MMP_MIN_CHECK_INTERVAL * 4) {
+ /* Print warning if e2fck will wait for more than 20 secs. */
+ if ((ctx->options & E2F_OPT_VERBOSE) ||
+ wait_time > EXT4_MMP_MIN_CHECK_INTERVAL * 4) {
log_out(ctx, _("MMP interval is %u seconds and total wait "
"time is %u seconds. Please wait...\n"),
mmp_check_interval, wait_time * 2);
--
2.14.3
Powered by blists - more mailing lists