]> git.ipfire.org Git - thirdparty/util-linux.git/commitdiff
fstrim: affect only warnings by --quiet
authorKarel Zak <kzak@redhat.com>
Thu, 9 May 2019 11:59:54 +0000 (13:59 +0200)
committerKarel Zak <kzak@redhat.com>
Thu, 9 May 2019 11:59:54 +0000 (13:59 +0200)
We need the same return code from fstrim_filesystem() independently on
--quiet command line option.

Addresses: https://github.com/karelzak/util-linux/pull/791
Signed-off-by: Karel Zak <kzak@redhat.com>
Documentation/releases/v2.34-ReleaseNotes
sys-utils/fstrim.c

index efd0be36896e8d10ceb6d1d94dc888a109099861..3e17fb9ddb69c158debf27f91e6278c4825e17ca 100644 (file)
@@ -32,6 +32,10 @@ The command unshare(1) now allows set user ID and group ID by new command line
 options -S/--setuid and -G/--setgid; and new options -R/--root and -w/--wd
 allows to set root and working directory (like nsenter(1)).
 
+The command fstrim(8) does not suppress some well known trimming warnings by
+default anymore.  It's necessary to explicitly use a new command line option
+--quiet (recommended for crond or systemd).
+
 The command lscpu(1) now prints 'Frequency boost' and 'Vulnerability' fields.
 The caches calculation has been modified to print summary from all system caches
 rather than per code numbers.
index 9491079c38e784380d28751560b695bd48c46638..cae38cdff90cc01feb2a8282fdf3e79b309075da 100644 (file)
@@ -113,10 +113,8 @@ static int fstrim_filesystem(struct fstrim_control *ctl, const char *path, const
                case EBADF:
                case ENOTTY:
                case EOPNOTSUPP:
-                       if (ctl->quiet) {
-                               rc = 1;
-                               break;
-                       }
+                       rc = 1;
+                       break;
                default:
                        rc = -errno;
                }
@@ -325,8 +323,11 @@ static int fstrim_all(struct fstrim_control *ctl)
                 * This is reason why we ignore EOPNOTSUPP and ENOTTY errors
                 * from discard ioctl.
                 */
-               if (fstrim_filesystem(ctl, tgt, src) < 0)
+               rc = fstrim_filesystem(ctl, tgt, src);
+               if (rc < 0)
                       cnt_err++;
+               else if (rc == 1 && !ctl->quiet)
+                       warnx(_("%s: the discard operation is not supported"), tgt);
        }
 
        ul_unref_path(wholedisk);
@@ -451,7 +452,7 @@ int main(int argc, char **argv)
                return fstrim_all(&ctl);        /* MNT_EX_* codes */
 
        rc = fstrim_filesystem(&ctl, path, NULL);
-       if (rc == 1)
+       if (rc == 1 && !ctl.quiet)
                warnx(_("%s: the discard operation is not supported"), path);
 
        return rc == 0 ? EXIT_SUCCESS : EXIT_FAILURE;