From: Zorro Lang Date: Wed, 20 Jul 2016 05:31:18 +0000 (+1000) Subject: xfs_repair: low memory shouldn't indicate corruption on exit X-Git-Tag: v4.7.0-rc2~2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=70a4820f5b800c690ba696230343446979decdc3;p=thirdparty%2Fxfsprogs-dev.git xfs_repair: low memory shouldn't indicate corruption on exit When I run "xfs_repair -n" on a 500T device with 16G memory, xfs_repair print warning as below: Memory available for repair (11798MB) may not be sufficient. At least 64048MB is needed to repair this filesystem efficiently If repair fails due to lack of memory, please turn prefetching off (-P) to reduce the memory footprint. And it returned an exit value of 1. But xfs_repair didn't hit any error, so there is no reason to mark the fs as corrupted just because it thinks it might *possibly* not have enough memory to run to completion. do_warn() will set fs_is_dirty=1 and hence give a non-zero exit status. If we only want to print an informational message (not a real issue), then we should use do_log() instead. Signed-off-by: Zorro Lang Reviewed-by: Eric Sandeen Signed-off-by: Dave Chinner --- diff --git a/repair/xfs_repair.c b/repair/xfs_repair.c index 9d91f2df5..bbf0edc0e 100644 --- a/repair/xfs_repair.c +++ b/repair/xfs_repair.c @@ -851,16 +851,16 @@ main(int argc, char **argv) "with the -m option. Please increase it to at least %lu.\n"), mem_used / 1024); } - do_warn( + do_log( _("Memory available for repair (%luMB) may not be sufficient.\n" "At least %luMB is needed to repair this filesystem efficiently\n" "If repair fails due to lack of memory, please\n"), max_mem / 1024, mem_used / 1024); if (do_prefetch) - do_warn( + do_log( _("turn prefetching off (-P) to reduce the memory footprint.\n")); else - do_warn( + do_log( _("increase system RAM and/or swap space to at least %luMB.\n"), mem_used * 2 / 1024);