btrfs: qgroup: update rescan message levels and error codes
authorDavid Sterba <dsterba@suse.com>
Thu, 2 May 2024 20:45:58 +0000 (22:45 +0200)
committerDavid Sterba <dsterba@suse.com>
Wed, 15 May 2024 15:57:00 +0000 (17:57 +0200)
On filesystems without enabled quotas there's still a warning message in
the logs when rescan is called. In that case it's not a problem that
should be reported, rescan can be called unconditionally.  Change the
error code to ENOTCONN which is used for 'quotas not enabled' elsewhere.

Remove message (also a warning) when rescan is called during an ongoing
rescan, this brings no useful information and the error code is
sufficient.

Change message levels to debug for now, they can be removed eventually.

CC: stable@vger.kernel.org # 6.6+
Reviewed-by: Boris Burkov <boris@bur.io>
Signed-off-by: David Sterba <dsterba@suse.com>
fs/btrfs/qgroup.c

index eb28141d5c37f7e832951e8054010c47ac3329d3..f93354a9690971a9402dc64ec320c41388a9bbce 100644 (file)
@@ -3820,14 +3820,14 @@ qgroup_rescan_init(struct btrfs_fs_info *fs_info, u64 progress_objectid,
                /* we're resuming qgroup rescan at mount time */
                if (!(fs_info->qgroup_flags &
                      BTRFS_QGROUP_STATUS_FLAG_RESCAN)) {
-                       btrfs_warn(fs_info,
+                       btrfs_debug(fs_info,
                        "qgroup rescan init failed, qgroup rescan is not queued");
                        ret = -EINVAL;
                } else if (!(fs_info->qgroup_flags &
                             BTRFS_QGROUP_STATUS_FLAG_ON)) {
-                       btrfs_warn(fs_info,
+                       btrfs_debug(fs_info,
                        "qgroup rescan init failed, qgroup is not enabled");
-                       ret = -EINVAL;
+                       ret = -ENOTCONN;
                }
 
                if (ret)
@@ -3838,14 +3838,12 @@ qgroup_rescan_init(struct btrfs_fs_info *fs_info, u64 progress_objectid,
 
        if (init_flags) {
                if (fs_info->qgroup_flags & BTRFS_QGROUP_STATUS_FLAG_RESCAN) {
-                       btrfs_warn(fs_info,
-                                  "qgroup rescan is already in progress");
                        ret = -EINPROGRESS;
                } else if (!(fs_info->qgroup_flags &
                             BTRFS_QGROUP_STATUS_FLAG_ON)) {
-                       btrfs_warn(fs_info,
+                       btrfs_debug(fs_info,
                        "qgroup rescan init failed, qgroup is not enabled");
-                       ret = -EINVAL;
+                       ret = -ENOTCONN;
                } else if (btrfs_qgroup_mode(fs_info) == BTRFS_QGROUP_MODE_DISABLED) {
                        /* Quota disable is in progress */
                        ret = -EBUSY;