diff mbox

btrfs: qgroup: More meaningful qgroup_rescan_init error message

Message ID 20180502052803.4222-1-wqu@suse.com (mailing list archive)
State New, archived
Headers show

Commit Message

Qu Wenruo May 2, 2018, 5:28 a.m. UTC
Error message from qgroup_rescan_init() mostly looks like:

------
BTRFS info (device nvme0n1p1): qgroup_rescan_init failed with -115
------

Which is far from meaningful, and sometimes confusing as for above
-EINPROGRESS it's mostly (despite the init race) harmless, but sometimes
it can also indicates problem if return value is -EINVAL.

Change it to some more meaningful messages like:

------
BTRFS info (device nvme0n1p1): qgroup rescan is already in progress
------

And

------
BTRFS err(device nvme0n1p1): qgroup_rescan_init failed, qgroup is not enabled
------

Signed-off-by: Qu Wenruo <wqu@suse.com>
---
 fs/btrfs/qgroup.c | 34 +++++++++++++++++++---------------
 1 file changed, 19 insertions(+), 15 deletions(-)

Comments

Nikolay Borisov May 2, 2018, 6:52 a.m. UTC | #1
On  2.05.2018 08:28, Qu Wenruo wrote:
> Error message from qgroup_rescan_init() mostly looks like:
> 
> ------
> BTRFS info (device nvme0n1p1): qgroup_rescan_init failed with -115
> ------
> 
> Which is far from meaningful, and sometimes confusing as for above
> -EINPROGRESS it's mostly (despite the init race) harmless, but sometimes
> it can also indicates problem if return value is -EINVAL.
> 
> Change it to some more meaningful messages like:
> 
> ------
> BTRFS info (device nvme0n1p1): qgroup rescan is already in progress
> ------
> 
> And
> 
> ------
> BTRFS err(device nvme0n1p1): qgroup_rescan_init failed, qgroup is not enabled
> ------
> 
> Signed-off-by: Qu Wenruo <wqu@suse.com>

Much better indeed:

Reviewed-by: Nikolay Borisov <nborisov@suse.com>

> ---
>  fs/btrfs/qgroup.c | 34 +++++++++++++++++++---------------
>  1 file changed, 19 insertions(+), 15 deletions(-)
> 
> diff --git a/fs/btrfs/qgroup.c b/fs/btrfs/qgroup.c
> index ec2339a49ec3..a5742e9e9a14 100644
> --- a/fs/btrfs/qgroup.c
> +++ b/fs/btrfs/qgroup.c
> @@ -2760,26 +2760,37 @@ qgroup_rescan_init(struct btrfs_fs_info *fs_info, u64 progress_objectid,
>  {
>  	int ret = 0;
>  
> -	if (!init_flags &&
> -	    (!(fs_info->qgroup_flags & BTRFS_QGROUP_STATUS_FLAG_RESCAN) ||
> -	     !(fs_info->qgroup_flags & BTRFS_QGROUP_STATUS_FLAG_ON))) {
> -		ret = -EINVAL;
> -		goto err;
> +	if (!init_flags) {
> +		/* we're resuming qgroup rescan at mount time */
> +		if (!(fs_info->qgroup_flags & BTRFS_QGROUP_STATUS_FLAG_RESCAN))
> +			btrfs_err(fs_info, "%s failed, qgroup is not enabled",
> +				  __func__);
> +		else if (!(fs_info->qgroup_flags & BTRFS_QGROUP_STATUS_FLAG_ON))
> +			btrfs_err(fs_info,
> +				  "%s failed, qgroup rescan is not queued",
> +				  __func__);
> +		return -EINVAL;
>  	}
>  
>  	mutex_lock(&fs_info->qgroup_rescan_lock);
>  	spin_lock(&fs_info->qgroup_lock);
>  
>  	if (init_flags) {
> -		if (fs_info->qgroup_flags & BTRFS_QGROUP_STATUS_FLAG_RESCAN)
> +		if (fs_info->qgroup_flags & BTRFS_QGROUP_STATUS_FLAG_RESCAN) {
> +			btrfs_info(fs_info,
> +				   "qgroup rescan is already in progress");
>  			ret = -EINPROGRESS;
> -		else if (!(fs_info->qgroup_flags & BTRFS_QGROUP_STATUS_FLAG_ON))
> +		} else if (!(fs_info->qgroup_flags &
> +			     BTRFS_QGROUP_STATUS_FLAG_ON)) {
> +			btrfs_err(fs_info, "%s failed, qgroup is not enabled",
> +				  __func__);
>  			ret = -EINVAL;
> +		}
>  
>  		if (ret) {
>  			spin_unlock(&fs_info->qgroup_lock);
>  			mutex_unlock(&fs_info->qgroup_rescan_lock);
> -			goto err;
> +			return ret;
>  		}
>  		fs_info->qgroup_flags |= BTRFS_QGROUP_STATUS_FLAG_RESCAN;
>  	}
> @@ -2798,13 +2809,6 @@ qgroup_rescan_init(struct btrfs_fs_info *fs_info, u64 progress_objectid,
>  	btrfs_init_work(&fs_info->qgroup_rescan_work,
>  			btrfs_qgroup_rescan_helper,
>  			btrfs_qgroup_rescan_worker, NULL, NULL);
> -
> -	if (ret) {
> -err:
> -		btrfs_info(fs_info, "qgroup_rescan_init failed with %d", ret);
> -		return ret;
> -	}
> -
>  	return 0;
>  }
>  
> 
--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
David Sterba May 25, 2018, 2:35 p.m. UTC | #2
On Wed, May 02, 2018 at 01:28:03PM +0800, Qu Wenruo wrote:
> Error message from qgroup_rescan_init() mostly looks like:
> 
> ------
> BTRFS info (device nvme0n1p1): qgroup_rescan_init failed with -115
> ------
> 
> Which is far from meaningful, and sometimes confusing as for above
> -EINPROGRESS it's mostly (despite the init race) harmless, but sometimes
> it can also indicates problem if return value is -EINVAL.
> 
> Change it to some more meaningful messages like:
> 
> ------
> BTRFS info (device nvme0n1p1): qgroup rescan is already in progress
> ------
> 
> And
> 
> ------
> BTRFS err(device nvme0n1p1): qgroup_rescan_init failed, qgroup is not enabled
> ------
> 
> Signed-off-by: Qu Wenruo <wqu@suse.com>
> ---
>  fs/btrfs/qgroup.c | 34 +++++++++++++++++++---------------
>  1 file changed, 19 insertions(+), 15 deletions(-)
> 
> diff --git a/fs/btrfs/qgroup.c b/fs/btrfs/qgroup.c
> index ec2339a49ec3..a5742e9e9a14 100644
> --- a/fs/btrfs/qgroup.c
> +++ b/fs/btrfs/qgroup.c
> @@ -2760,26 +2760,37 @@ qgroup_rescan_init(struct btrfs_fs_info *fs_info, u64 progress_objectid,
>  {
>  	int ret = 0;
>  
> -	if (!init_flags &&
> -	    (!(fs_info->qgroup_flags & BTRFS_QGROUP_STATUS_FLAG_RESCAN) ||
> -	     !(fs_info->qgroup_flags & BTRFS_QGROUP_STATUS_FLAG_ON))) {
> -		ret = -EINVAL;
> -		goto err;
> +	if (!init_flags) {
> +		/* we're resuming qgroup rescan at mount time */
> +		if (!(fs_info->qgroup_flags & BTRFS_QGROUP_STATUS_FLAG_RESCAN))
> +			btrfs_err(fs_info, "%s failed, qgroup is not enabled",
> +				  __func__);

I've updated this to avoid the function name as it's supposed to be a
user message, but it's the same string without the _. Also the error
level was originally info, but as you now filter the important messages,
from the wording I'd say they're warnings not really errors.

Anyway, updated and added to misc-next, thanks.
--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/fs/btrfs/qgroup.c b/fs/btrfs/qgroup.c
index ec2339a49ec3..a5742e9e9a14 100644
--- a/fs/btrfs/qgroup.c
+++ b/fs/btrfs/qgroup.c
@@ -2760,26 +2760,37 @@  qgroup_rescan_init(struct btrfs_fs_info *fs_info, u64 progress_objectid,
 {
 	int ret = 0;
 
-	if (!init_flags &&
-	    (!(fs_info->qgroup_flags & BTRFS_QGROUP_STATUS_FLAG_RESCAN) ||
-	     !(fs_info->qgroup_flags & BTRFS_QGROUP_STATUS_FLAG_ON))) {
-		ret = -EINVAL;
-		goto err;
+	if (!init_flags) {
+		/* we're resuming qgroup rescan at mount time */
+		if (!(fs_info->qgroup_flags & BTRFS_QGROUP_STATUS_FLAG_RESCAN))
+			btrfs_err(fs_info, "%s failed, qgroup is not enabled",
+				  __func__);
+		else if (!(fs_info->qgroup_flags & BTRFS_QGROUP_STATUS_FLAG_ON))
+			btrfs_err(fs_info,
+				  "%s failed, qgroup rescan is not queued",
+				  __func__);
+		return -EINVAL;
 	}
 
 	mutex_lock(&fs_info->qgroup_rescan_lock);
 	spin_lock(&fs_info->qgroup_lock);
 
 	if (init_flags) {
-		if (fs_info->qgroup_flags & BTRFS_QGROUP_STATUS_FLAG_RESCAN)
+		if (fs_info->qgroup_flags & BTRFS_QGROUP_STATUS_FLAG_RESCAN) {
+			btrfs_info(fs_info,
+				   "qgroup rescan is already in progress");
 			ret = -EINPROGRESS;
-		else if (!(fs_info->qgroup_flags & BTRFS_QGROUP_STATUS_FLAG_ON))
+		} else if (!(fs_info->qgroup_flags &
+			     BTRFS_QGROUP_STATUS_FLAG_ON)) {
+			btrfs_err(fs_info, "%s failed, qgroup is not enabled",
+				  __func__);
 			ret = -EINVAL;
+		}
 
 		if (ret) {
 			spin_unlock(&fs_info->qgroup_lock);
 			mutex_unlock(&fs_info->qgroup_rescan_lock);
-			goto err;
+			return ret;
 		}
 		fs_info->qgroup_flags |= BTRFS_QGROUP_STATUS_FLAG_RESCAN;
 	}
@@ -2798,13 +2809,6 @@  qgroup_rescan_init(struct btrfs_fs_info *fs_info, u64 progress_objectid,
 	btrfs_init_work(&fs_info->qgroup_rescan_work,
 			btrfs_qgroup_rescan_helper,
 			btrfs_qgroup_rescan_worker, NULL, NULL);
-
-	if (ret) {
-err:
-		btrfs_info(fs_info, "qgroup_rescan_init failed with %d", ret);
-		return ret;
-	}
-
 	return 0;
 }