]> git.ipfire.org Git - thirdparty/util-linux.git/commitdiff
mkswap: set variable only when it's value is known
authorSami Kerola <kerolasa@iki.fi>
Sun, 2 Nov 2014 20:26:30 +0000 (20:26 +0000)
committerKarel Zak <kzak@redhat.com>
Fri, 7 Nov 2014 12:21:06 +0000 (13:21 +0100)
Avoid updating ctl->pagesize twice when user does specify page size.

Signed-off-by: Sami Kerola <kerolasa@iki.fi>
disk-utils/mkswap.c

index 7f600137d023974932a2294167f37e9adb8b6d14..280d8902501a2449b50c7e5d1456ebf99c93f212 100644 (file)
@@ -90,23 +90,21 @@ struct mkswap_control {
 static void
 init_signature_page(struct mkswap_control *ctl)
 {
-
-       int kernel_pagesize = ctl->pagesize = getpagesize();
+       const int kernel_pagesize = getpagesize();
 
        if (ctl->user_pagesize) {
                if (ctl->user_pagesize < 0 || !is_power_of_2(ctl->user_pagesize) ||
                    (size_t) ctl->user_pagesize < sizeof(struct swap_header_v1_2) + 10)
                        errx(EXIT_FAILURE,
-                               _("Bad user-specified page size %u"),
-                               ctl->user_pagesize);
-               ctl->pagesize = ctl->user_pagesize;
-       }
-
-       if (ctl->user_pagesize && ctl->user_pagesize != kernel_pagesize)
-               warnx(_("Using user-specified page size %d, "
+                            _("Bad user-specified page size %u"),
+                              ctl->user_pagesize);
+               if (ctl->user_pagesize != kernel_pagesize)
+                       warnx(_("Using user-specified page size %d, "
                                "instead of the system value %d"),
                                ctl->pagesize, kernel_pagesize);
-
+               ctl->pagesize = ctl->user_pagesize;
+       } else
+               ctl->pagesize = kernel_pagesize;
        ctl->signature_page = (unsigned long *) xcalloc(1, ctl->pagesize);
 }