]> git.ipfire.org Git - thirdparty/xfsprogs-dev.git/commitdiff
xfs_quota: command error message improvement
authorBill O'Donnell <billodo@redhat.com>
Mon, 24 Aug 2020 17:23:23 +0000 (13:23 -0400)
committerEric Sandeen <sandeen@sandeen.net>
Mon, 24 Aug 2020 17:23:23 +0000 (13:23 -0400)
Make the error messages for rudimentary xfs_quota commands
(off, enable, disable) more user friendly, instead of the
terse sys error outputs.

Signed-off-by: Bill O'Donnell <billodo@redhat.com>
Reviewed-by: Darrick J. Wong <darrick.wong@oracle.com>
Signed-off-by: Eric Sandeen <sandeen@sandeen.net>
quota/state.c

index 8f9718f1984cf4dce3535cbcaa1b62a6e6235287..7a595fc6d0bfa8c6a6629f302fd0b54a24eaa046 100644 (file)
@@ -306,8 +306,16 @@ enable_enforcement(
                return;
        }
        dir = mount->fs_name;
-       if (xfsquotactl(XFS_QUOTAON, dir, type, 0, (void *)&qflags) < 0)
-               perror("XFS_QUOTAON");
+       if (xfsquotactl(XFS_QUOTAON, dir, type, 0, (void *)&qflags) < 0) {
+               if (errno == EEXIST)
+                       fprintf(stderr,
+                               _("Quota enforcement already enabled.\n"));
+               else if (errno == EINVAL || errno == ENOSYS)
+                       fprintf(stderr,
+                               _("Can't enable enforcement when quota off.\n"));
+               else
+                       perror("XFS_QUOTAON");
+       }
        else if (flags & VERBOSE_FLAG)
                state_quotafile_mount(stdout, type, mount, flags);
 }
@@ -328,8 +336,16 @@ disable_enforcement(
                return;
        }
        dir = mount->fs_name;
-       if (xfsquotactl(XFS_QUOTAOFF, dir, type, 0, (void *)&qflags) < 0)
-               perror("XFS_QUOTAOFF");
+       if (xfsquotactl(XFS_QUOTAOFF, dir, type, 0, (void *)&qflags) < 0) {
+               if (errno == EEXIST)
+                       fprintf(stderr,
+                               _("Quota enforcement already disabled.\n"));
+               else if (errno == EINVAL || errno == ENOSYS)
+                       fprintf(stderr,
+                               _("Can't disable enforcement when quota off.\n"));
+               else
+                       perror("XFS_QUOTAOFF");
+       }
        else if (flags & VERBOSE_FLAG)
                state_quotafile_mount(stdout, type, mount, flags);
 }
@@ -350,8 +366,12 @@ quotaoff(
                return;
        }
        dir = mount->fs_name;
-       if (xfsquotactl(XFS_QUOTAOFF, dir, type, 0, (void *)&qflags) < 0)
-               perror("XFS_QUOTAOFF");
+       if (xfsquotactl(XFS_QUOTAOFF, dir, type, 0, (void *)&qflags) < 0) {
+               if (errno == EEXIST || errno == ENOSYS)
+                       fprintf(stderr, _("Quota already off.\n"));
+               else
+                       perror("XFS_QUOTAOFF");
+       }
        else if (flags & VERBOSE_FLAG)
                state_quotafile_mount(stdout, type, mount, flags);
 }