]> err.no Git - util-linux/commitdiff
hwclock: set kernel timezone with --systz --utc
authorScott James Remnant <scott@ubuntu.com>
Thu, 24 Sep 2009 19:17:23 +0000 (12:17 -0700)
committerKarel Zak <kzak@redhat.com>
Tue, 13 Oct 2009 14:17:51 +0000 (16:17 +0200)
Even though --systz doesn't need to change the system clock when the
hardware clock is in UTC time (--systz --utc), it does need to set
the kernel timezone so that FAT timestamps, etc. will be correct.

Signed-off-by: Scott James Remnant <scott@ubuntu.com>
hwclock/hwclock.c

index 9cdadfea675a5f80eeaba4bb2d342438d3c50698..c07f75795feb3eb437a0d6524138a9610152a2fb 100644 (file)
@@ -753,10 +753,10 @@ set_system_clock(const bool hclock_valid, const time_t newtime,
 
 
 static int
-set_system_clock_timezone(const bool testing) {
+set_system_clock_timezone(const bool universal, const bool testing) {
 /*----------------------------------------------------------------------------
    Reset the System Clock from local time to UTC, based on its current
-   value and the timezone.
+   value and the timezone unless universal is TRUE.
 
    Also set the kernel time zone value to the value indicated by the
    TZ environment variable and/or /usr/lib/zoneinfo/, interpreted as
@@ -791,7 +791,8 @@ set_system_clock_timezone(const bool testing) {
 #endif
 
   gettimeofday(&tv, NULL);
-  tv.tv_sec += minuteswest * 60;
+  if (!universal)
+    tv.tv_sec += minuteswest * 60;
 
   if (debug) {
     struct tm broken_time;
@@ -1221,14 +1222,10 @@ manipulate_clock(const bool show, const bool adjust, const bool noadjfile,
            return rc;
           }
        } else if (systz) {
-         if (!universal) {
-           rc = set_system_clock_timezone(testing);
-           if (rc) {
-             printf(_("Unable to set system clock.\n"));
-             return rc;
-           }
-         } else if (debug) {
-           printf(_("Clock in UTC, not changed.\n"));
+         rc = set_system_clock_timezone(universal, testing);
+         if (rc) {
+           printf(_("Unable to set system clock.\n"));
+           return rc;
          }
         }
         if (!noadjfile)