Update.
authorUlrich Drepper <drepper@redhat.com>
Sat, 20 Nov 2004 20:23:45 +0000 (20:23 +0000)
committerUlrich Drepper <drepper@redhat.com>
Sat, 20 Nov 2004 20:23:45 +0000 (20:23 +0000)
* time/tzfile.c (__tzfile_read): Avoid open for checking whether
the file we already use changed.

ChangeLog
time/tzfile.c

index 95017ea..e250e34 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,8 @@
 2004-11-20  Ulrich Drepper  <drepper@redhat.com>
 
+       * time/tzfile.c (__tzfile_read): Avoid open for checking whether
+       the file we already use changed.
+
        * misc/syslog.c: Remove !USE_IN_LIBIO code.
 
 2004-11-20  Jakub Jelinek  <jakub@redhat.com>
index 48c1e4d..e95fd55 100644 (file)
@@ -149,27 +149,30 @@ __tzfile_read (const char *file, size_t extra, char **extrap)
       file = new;
     }
 
+  /* If we were already using tzfile, check whether the file changed.  */
+  struct stat64 st;
+  if (was_using_tzfile
+      && stat64 (file, &st) == 0
+      && tzfile_ino == st.st_ino && tzfile_dev == st.st_dev
+      && tzfile_mtime == st.st_mtime)
+    {
+      /* Nothing to do.  */
+      __use_tzfile = 1;
+      return;
+    }
+
   /* Note the file is opened with cancellation in the I/O functions
      disabled.  */
   f = fopen (file, "rc");
   if (f == NULL)
     goto ret_free_transitions;
 
-  /* Get information about the file.  */
-  struct stat64 st;
+  /* Get information about the file we are actually using.  */
   if (fstat64 (fileno (f), &st) != 0)
     {
       fclose (f);
       goto ret_free_transitions;
     }
-  if (was_using_tzfile && tzfile_ino == st.st_ino && tzfile_dev == st.st_dev
-      && tzfile_mtime == st.st_mtime)
-    {
-      /* It's the same file.  No further work needed.  */
-      fclose (f);
-      __use_tzfile = 1;
-      return;
-    }
 
   free ((void *) transitions);
   transitions = NULL;