]> git.ipfire.org Git - thirdparty/util-linux.git/commitdiff
fstrim: Return EXIT_FAILURE when FTRIM ioctl fails
authorKarel Zak <kzak@redhat.com>
Fri, 6 Apr 2018 10:53:18 +0000 (12:53 +0200)
committerKarel Zak <kzak@redhat.com>
Wed, 11 Jul 2018 14:03:19 +0000 (16:03 +0200)
commit 36c370cbf1481aa8724dff8b7b7fec4a8ba9930b adds fstrim_filesystem()
that return -1 or 1 depending on the FTRIM ioctl failures.

The fstrim_filesystem() return codes should not be used as exit codes.

Reported-by: Gwendal Grignou <gwendal@chromium.org>
Signed-off-by: Karel Zak <kzak@redhat.com>
sys-utils/fstrim.c

index ce52063e139ed686a0f0e51ca97f70846bf85192..70870ef69a6ee58098a2de7f285e64d1718d8211 100644 (file)
@@ -241,7 +241,7 @@ static int fstrim_all(struct fstrim_range *rangetpl, int verbose)
        if (cnt && cnt_err)
                return MNT_EX_SOMEOK;           /* some ok */
 
-       return EXIT_SUCCESS;
+       return MNT_EX_SUCCESS;
 }
 
 static void __attribute__((__noreturn__)) usage(void)
@@ -336,14 +336,11 @@ int main(int argc, char **argv)
        }
 
        if (all)
-               rc = fstrim_all(&range, verbose);
-       else {
-               rc = fstrim_filesystem(path, &range, verbose);
-               if (rc == 1) {
-                       warnx(_("%s: the discard operation is not supported"), path);
-                       rc = EXIT_FAILURE;
-               }
-       }
+               return fstrim_all(&range, verbose);     /* MNT_EX_* codes */
 
-       return rc;
+       rc = fstrim_filesystem(path, &range, verbose);
+       if (rc == 1)
+               warnx(_("%s: the discard operation is not supported"), path);
+
+       return rc == 0 ? EXIT_SUCCESS : EXIT_FAILURE;
 }