Re: [PATCH 4/7] xfs_scrub: reclassify runtime errors

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




On 2/5/18 5:22 PM, Darrick J. Wong wrote:
> From: Darrick J. Wong <darrick.wong@xxxxxxxxxx>
> 
> If the program encounters runtime errors, these should be noted as
> information.  Because these errors abort the execution flow (which is
> counted as a runtime error), we need only call str_info to log the
> event.
> 
> Signed-off-by: Darrick J. Wong <darrick.wong@xxxxxxxxxx>

Ok.  Again I wonder if eventually str_error should turn into
scrub_log_fs_corruption() and str_info into scrub_log_runtime_error()
or something...

Reviewed-by: Eric Sandeen <sandeen@xxxxxxxxxx>

> ---
>  scrub/fscounters.c  |    4 ++--
>  scrub/inodes.c      |    4 ++--
>  scrub/phase1.c      |    8 ++++----
>  scrub/phase2.c      |    6 +++---
>  scrub/phase3.c      |    2 +-
>  scrub/phase6.c      |    2 +-
>  scrub/read_verify.c |    2 +-
>  scrub/scrub.c       |    8 ++++----
>  scrub/spacemap.c    |    8 ++++----
>  scrub/vfs.c         |    6 +++---
>  10 files changed, 25 insertions(+), 25 deletions(-)
> 
> 
> diff --git a/scrub/fscounters.c b/scrub/fscounters.c
> index 4294bf3..ecdf4c6 100644
> --- a/scrub/fscounters.c
> +++ b/scrub/fscounters.c
> @@ -139,14 +139,14 @@ xfs_count_all_inodes(
>  			scrub_nproc_workqueue(ctx));
>  	if (ret) {
>  		moveon = false;
> -		str_error(ctx, ctx->mntpoint, _("Could not create workqueue."));
> +		str_info(ctx, ctx->mntpoint, _("Could not create workqueue."));
>  		goto out_free;
>  	}
>  	for (agno = 0; agno < ctx->geo.agcount; agno++) {
>  		ret = workqueue_add(&wq, xfs_count_ag_inodes, agno, ci);
>  		if (ret) {
>  			moveon = false;
> -			str_error(ctx, ctx->mntpoint,
> +			str_info(ctx, ctx->mntpoint,
>  _("Could not queue AG %u icount work."), agno);
>  			break;
>  		}
> diff --git a/scrub/inodes.c b/scrub/inodes.c
> index 23ec704..57b773e 100644
> --- a/scrub/inodes.c
> +++ b/scrub/inodes.c
> @@ -266,7 +266,7 @@ xfs_scan_all_inodes(
>  	ret = workqueue_create(&wq, (struct xfs_mount *)ctx,
>  			scrub_nproc_workqueue(ctx));
>  	if (ret) {
> -		str_error(ctx, ctx->mntpoint, _("Could not create workqueue."));
> +		str_info(ctx, ctx->mntpoint, _("Could not create workqueue."));
>  		return false;
>  	}
>  
> @@ -274,7 +274,7 @@ xfs_scan_all_inodes(
>  		ret = workqueue_add(&wq, xfs_scan_ag_inodes, agno, &si);
>  		if (ret) {
>  			si.moveon = false;
> -			str_error(ctx, ctx->mntpoint,
> +			str_info(ctx, ctx->mntpoint,
>  _("Could not queue AG %u bulkstat work."), agno);
>  			break;
>  		}
> diff --git a/scrub/phase1.c b/scrub/phase1.c
> index 82c8022..6cd5442 100644
> --- a/scrub/phase1.c
> +++ b/scrub/phase1.c
> @@ -134,7 +134,7 @@ _("Must be root to run scrub."));
>  	}
>  
>  	if (!platform_test_xfs_fd(ctx->mnt_fd)) {
> -		str_error(ctx, ctx->mntpoint,
> +		str_info(ctx, ctx->mntpoint,
>  _("Does not appear to be an XFS filesystem!"));
>  		return false;
>  	}
> @@ -191,7 +191,7 @@ _("Kernel metadata repair facility is not available.  Use -n to scrub."));
>  	errno = 0;
>  	fsp = fs_table_lookup(ctx->mntpoint, FS_MOUNT_POINT);
>  	if (!fsp) {
> -		str_error(ctx, ctx->mntpoint,
> +		str_info(ctx, ctx->mntpoint,
>  _("Unable to find XFS information."));
>  		return false;
>  	}
> @@ -199,12 +199,12 @@ _("Unable to find XFS information."));
>  
>  	/* Did we find the log and rt devices, if they're present? */
>  	if (ctx->geo.logstart == 0 && ctx->fsinfo.fs_log == NULL) {
> -		str_error(ctx, ctx->mntpoint,
> +		str_info(ctx, ctx->mntpoint,
>  _("Unable to find log device path."));
>  		return false;
>  	}
>  	if (ctx->geo.rtblocks && ctx->fsinfo.fs_rt == NULL) {
> -		str_error(ctx, ctx->mntpoint,
> +		str_info(ctx, ctx->mntpoint,
>  _("Unable to find realtime device path."));
>  		return false;
>  	}
> diff --git a/scrub/phase2.c b/scrub/phase2.c
> index 32e2752..edf66df 100644
> --- a/scrub/phase2.c
> +++ b/scrub/phase2.c
> @@ -94,7 +94,7 @@ xfs_scan_metadata(
>  	ret = workqueue_create(&wq, (struct xfs_mount *)ctx,
>  			scrub_nproc_workqueue(ctx));
>  	if (ret) {
> -		str_error(ctx, ctx->mntpoint, _("Could not create workqueue."));
> +		str_info(ctx, ctx->mntpoint, _("Could not create workqueue."));
>  		return false;
>  	}
>  
> @@ -111,7 +111,7 @@ xfs_scan_metadata(
>  		ret = workqueue_add(&wq, xfs_scan_ag_metadata, agno, &moveon);
>  		if (ret) {
>  			moveon = false;
> -			str_error(ctx, ctx->mntpoint,
> +			str_info(ctx, ctx->mntpoint,
>  _("Could not queue AG %u scrub work."), agno);
>  			goto out;
>  		}
> @@ -123,7 +123,7 @@ _("Could not queue AG %u scrub work."), agno);
>  	ret = workqueue_add(&wq, xfs_scan_fs_metadata, 0, &moveon);
>  	if (ret) {
>  		moveon = false;
> -		str_error(ctx, ctx->mntpoint,
> +		str_info(ctx, ctx->mntpoint,
>  _("Could not queue filesystem scrub work."));
>  		goto out;
>  	}
> diff --git a/scrub/phase3.c b/scrub/phase3.c
> index f4117b0..a0ee5d9 100644
> --- a/scrub/phase3.c
> +++ b/scrub/phase3.c
> @@ -137,7 +137,7 @@ xfs_scan_inodes(
>  	ictx.moveon = true;
>  	ictx.icount = ptcounter_init(scrub_nproc(ctx));
>  	if (!ictx.icount) {
> -		str_error(ctx, ctx->mntpoint, _("Could not create counter."));
> +		str_info(ctx, ctx->mntpoint, _("Could not create counter."));
>  		return false;
>  	}
>  
> diff --git a/scrub/phase6.c b/scrub/phase6.c
> index 9795bf3..f985950 100644
> --- a/scrub/phase6.c
> +++ b/scrub/phase6.c
> @@ -485,7 +485,7 @@ xfs_scan_blocks(
>  			xfs_check_rmap_ioerr, disk_heads(ctx->datadev));
>  	if (!ve.readverify) {
>  		moveon = false;
> -		str_error(ctx, ctx->mntpoint,
> +		str_info(ctx, ctx->mntpoint,
>  _("Could not create media verifier."));
>  		goto out_rbad;
>  	}
> diff --git a/scrub/read_verify.c b/scrub/read_verify.c
> index e816688..ae2e85f 100644
> --- a/scrub/read_verify.c
> +++ b/scrub/read_verify.c
> @@ -187,7 +187,7 @@ read_verify_queue(
>  
>  	ret = workqueue_add(&rvp->wq, read_verify, 0, tmp);
>  	if (ret) {
> -		str_error(rvp->ctx, rvp->ctx->mntpoint,
> +		str_info(rvp->ctx, rvp->ctx->mntpoint,
>  _("Could not queue read-verify work."));
>  		free(tmp);
>  		return false;
> diff --git a/scrub/scrub.c b/scrub/scrub.c
> index bc0e2f0..ff5357c 100644
> --- a/scrub/scrub.c
> +++ b/scrub/scrub.c
> @@ -219,7 +219,7 @@ xfs_check_metadata(
>  			return CHECK_DONE;
>  		case ESHUTDOWN:
>  			/* FS already crashed, give up. */
> -			str_error(ctx, buf,
> +			str_info(ctx, buf,
>  _("Filesystem is shut down, aborting."));
>  			return CHECK_ABORT;
>  		case EIO:
> @@ -235,7 +235,7 @@ _("Filesystem is shut down, aborting."));
>  			 * The first two should never escape the kernel,
>  			 * and the other two should be reported via sm_flags.
>  			 */
> -			str_error(ctx, buf,
> +			str_info(ctx, buf,
>  _("Kernel bug!  errno=%d"), code);
>  			/* fall through */
>  		default:
> @@ -568,7 +568,7 @@ __xfs_scrub_test(
>  	if (debug_tweak_on("XFS_SCRUB_NO_KERNEL"))
>  		return false;
>  	if (debug_tweak_on("XFS_SCRUB_FORCE_REPAIR") && !injected) {
> -		str_error(ctx, "XFS_SCRUB_FORCE_REPAIR", "Not supported.");
> +		str_info(ctx, "XFS_SCRUB_FORCE_REPAIR", "Not supported.");
>  		return false;
>  	}
>  
> @@ -726,7 +726,7 @@ _("Filesystem is busy, deferring repair."));
>  			return CHECK_RETRY;
>  		case ESHUTDOWN:
>  			/* Filesystem is already shut down, abort. */
> -			str_error(ctx, buf,
> +			str_info(ctx, buf,
>  _("Filesystem is shut down, aborting."));
>  			return CHECK_ABORT;
>  		case ENOTTY:
> diff --git a/scrub/spacemap.c b/scrub/spacemap.c
> index 2dc6e2b..f631913 100644
> --- a/scrub/spacemap.c
> +++ b/scrub/spacemap.c
> @@ -217,7 +217,7 @@ xfs_scan_all_spacemaps(
>  	ret = workqueue_create(&wq, (struct xfs_mount *)ctx,
>  			scrub_nproc_workqueue(ctx));
>  	if (ret) {
> -		str_error(ctx, ctx->mntpoint, _("Could not create workqueue."));
> +		str_info(ctx, ctx->mntpoint, _("Could not create workqueue."));
>  		return false;
>  	}
>  	if (ctx->fsinfo.fs_rt) {
> @@ -225,7 +225,7 @@ xfs_scan_all_spacemaps(
>  				ctx->geo.agcount + 1, &sbx);
>  		if (ret) {
>  			sbx.moveon = false;
> -			str_error(ctx, ctx->mntpoint,
> +			str_info(ctx, ctx->mntpoint,
>  _("Could not queue rtdev fsmap work."));
>  			goto out;
>  		}
> @@ -235,7 +235,7 @@ _("Could not queue rtdev fsmap work."));
>  				ctx->geo.agcount + 2, &sbx);
>  		if (ret) {
>  			sbx.moveon = false;
> -			str_error(ctx, ctx->mntpoint,
> +			str_info(ctx, ctx->mntpoint,
>  _("Could not queue logdev fsmap work."));
>  			goto out;
>  		}
> @@ -244,7 +244,7 @@ _("Could not queue logdev fsmap work."));
>  		ret = workqueue_add(&wq, xfs_scan_ag_blocks, agno, &sbx);
>  		if (ret) {
>  			sbx.moveon = false;
> -			str_error(ctx, ctx->mntpoint,
> +			str_info(ctx, ctx->mntpoint,
>  _("Could not queue AG %u fsmap work."), agno);
>  			break;
>  		}
> diff --git a/scrub/vfs.c b/scrub/vfs.c
> index 573a2d0..0c5b353 100644
> --- a/scrub/vfs.c
> +++ b/scrub/vfs.c
> @@ -145,7 +145,7 @@ scan_fs_dir(
>  			pthread_mutex_unlock(&sft->lock);
>  			error = workqueue_add(wq, scan_fs_dir, 0, new_sftd);
>  			if (error) {
> -				str_error(ctx, ctx->mntpoint,
> +				str_info(ctx, ctx->mntpoint,
>  _("Could not queue subdirectory scan work."));
>  				sft->moveon = false;
>  				break;
> @@ -203,12 +203,12 @@ scan_fs_tree(
>  	ret = workqueue_create(&wq, (struct xfs_mount *)ctx,
>  			scrub_nproc_workqueue(ctx));
>  	if (ret) {
> -		str_error(ctx, ctx->mntpoint, _("Could not create workqueue."));
> +		str_info(ctx, ctx->mntpoint, _("Could not create workqueue."));
>  		goto out_free;
>  	}
>  	ret = workqueue_add(&wq, scan_fs_dir, 0, sftd);
>  	if (ret) {
> -		str_error(ctx, ctx->mntpoint,
> +		str_info(ctx, ctx->mntpoint,
>  _("Could not queue directory scan work."));
>  		goto out_free;
>  	}
> 
> --
> To unsubscribe from this list: send the line "unsubscribe linux-xfs" in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 
--
To unsubscribe from this list: send the line "unsubscribe linux-xfs" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [XFS Filesystem Development (older mail)]     [Linux Filesystem Development]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux RAID]     [Linux SCSI]


  Powered by Linux