Hi Gui, (2014/07/17 11:40), Gui Hecheng wrote: > o Return 0 to indicate success, > when detected errors were corrected during scrubbing. > P.s. This is also to facilitate scripting when return value > is to be checked. > o Warn the users if there are uncorrectable errors detected. > > Signed-off-by: Gui Hecheng <guihc.f...@cn.fujitsu.com> > --- > cmds-scrub.c | 13 ++++++++----- > 1 file changed, 8 insertions(+), 5 deletions(-) > > diff --git a/cmds-scrub.c b/cmds-scrub.c > index 5265a2b..f9e2b40 100644 > --- a/cmds-scrub.c > +++ b/cmds-scrub.c > @@ -1514,14 +1514,17 @@ out: > } > close_file_or_dir(fdmnt, dirstream); > > - if (nothing_to_resume) > - return 2; > if (err) > return 1; > - if (e_correctable) > + if (nothing_to_resume) > + return 2; > + if (e_uncorrectable) { > + ERR(!do_quiet, "ERROR: There are uncorrectable errors.\n"); > return 3; > - if (e_uncorrectable) > - return 4; > + } > + if (e_correctable) > + ERR(!do_quiet, "WARNING: errors detected during scrubbing, > corrected.\n"); > +
1. ERR() messages are not necessary since start command reports its status in the middle of scrub_start(). It includes both the number of correctable/uncorrectable errors. 2. It prints messages even if this program runs as foreground mode. Checking do_print is necessary. 3. Whether correctable/uncorrectable error exists in a file system is not related to the exist status of scrub. The role of this program is a) reading all data from all devices and verify checksums, and b) correct checksum errors "if possible". So, I consider scrub only returns error if this program itself failed to finish. Thanks, Satoru > return 0; > } > > -- To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html