From cff458acc31e21042d7b2dba77751d55a5c8c093 Mon Sep 17 00:00:00 2001 From: "Carlos J. Torres" Date: Sun, 9 Feb 2014 11:44:11 -0500 Subject: return exit codes like util-linux --- swapoff.c | 23 +++++++++++++---------- swapon.c | 23 +++++++++++++---------- 2 files changed, 26 insertions(+), 20 deletions(-) diff --git a/swapoff.c b/swapoff.c index 68b1f02..d89915f 100644 --- a/swapoff.c +++ b/swapoff.c @@ -13,6 +13,17 @@ usage(void) eprintf("usage: %s [-a] device\n", argv0); } +static int +xswapoff(const char *path) { + int status; + status = swapoff(path); + if (status < 0) { + fprintf(stderr, "swapoff %s: %s\n", + path, strerror(errno)); + } + return status; +} + int main(int argc, char *argv[]) { @@ -38,21 +49,13 @@ main(int argc, char *argv[]) fp = setmntent("/etc/fstab", "r"); while ((me = getmntent(fp)) != NULL) { if (strcmp(me->mnt_type, MNTTYPE_SWAP) == 0) { - if (swapoff(me->mnt_fsname) < 0) { - fprintf(stderr, "swapoff %s: %s\n", - me->mnt_fsname, strerror(errno)); - ret = EXIT_FAILURE; - } + ret |= xswapoff(me->mnt_fsname); } } endmntent(fp); } else { for (i = 0; i < argc; i++) { - if (swapoff(argv[i]) < 0) { - fprintf(stderr, "swapoff %s: %s\n", - argv[i], strerror(errno)); - ret = EXIT_FAILURE; - } + ret |= xswapoff(argv[i]); } } return ret; diff --git a/swapon.c b/swapon.c index 278aa73..fdce3ce 100644 --- a/swapon.c +++ b/swapon.c @@ -13,6 +13,17 @@ usage(void) eprintf("usage: %s [-dp] [-a] device\n", argv0); } +static int +xswapon(const char *path, int swapflags) { + int status = 0; + status = swapon(path, swapflags); + if (status < 0) { + fprintf(stderr, "swapon %s: %s\n", + path, strerror(errno)); + } + return status; +} + int main(int argc, char *argv[]) { @@ -46,21 +57,13 @@ main(int argc, char *argv[]) while ((me = getmntent(fp)) != NULL) { if (strcmp(me->mnt_type, MNTTYPE_SWAP) == 0 && (hasmntopt(me, MNTOPT_NOAUTO) == NULL)) { - if (swapon(me->mnt_fsname, flags) < 0) { - fprintf(stderr, "swapon %s: %s\n", - me->mnt_fsname, strerror(errno)); - ret = EXIT_FAILURE; - } + ret |= xswapon(me->mnt_fsname, flags); } } endmntent(fp); } else { for (i = 0; i < argc; i++) { - if (swapon(argv[i], flags) < 0) { - fprintf(stderr, "swapon %s: %s\n", - argv[i], strerror(errno)); - ret = EXIT_FAILURE; - } + ret |= xswapon(argv[i], flags); } } return ret; -- 1.8.4