about summary refs log tree commit diff
path: root/libio/tst-atime.c
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2002-09-04 20:50:52 +0000
committerUlrich Drepper <drepper@redhat.com>2002-09-04 20:50:52 +0000
commit06a7803ca04aedaadec19e0a36c563f716553548 (patch)
tree03d7d58c5c1102bae27b5ba6c2a1b09c2f3d6cdf /libio/tst-atime.c
parentba5da1e2ed443247eaefb6cc80c39fdd5a66273c (diff)
downloadglibc-06a7803ca04aedaadec19e0a36c563f716553548.tar.gz
glibc-06a7803ca04aedaadec19e0a36c563f716553548.tar.xz
glibc-06a7803ca04aedaadec19e0a36c563f716553548.zip
(do_test): Make sure noatime flag isn't set for filesystem.
Diffstat (limited to 'libio/tst-atime.c')
-rw-r--r--libio/tst-atime.c21
1 files changed, 21 insertions, 0 deletions
diff --git a/libio/tst-atime.c b/libio/tst-atime.c
index 2df64c3382..488963210e 100644
--- a/libio/tst-atime.c
+++ b/libio/tst-atime.c
@@ -4,6 +4,7 @@
 #include <string.h>
 #include <unistd.h>
 #include <sys/stat.h>
+#include <sys/statvfs.h>
 
 
 static int do_test (void);
@@ -21,6 +22,8 @@ do_test (void)
   int ch;
   struct stat st1;
   struct stat st2;
+  struct statvfs sv;
+  int e;
 
   buf = (char *) malloc (strlen (test_dir) + sizeof "/tst-atime.XXXXXX");
   if (buf == NULL)
@@ -37,6 +40,24 @@ do_test (void)
       return 1;
     }
 
+  /* Make sure the filesystem doesn't have the noatime option set.  If
+     statvfs is not available just continue.  */
+  e = fstatvfs (fd, &sv);
+  if (e != ENOSYS)
+    {
+      if (e != 0)
+	{
+	  printf ("cannot statvfs '%s': %m\n", buf);
+	  return 1;
+	}
+
+      if ((sv.f_flag & ST_NOATIME) != 0)
+	{
+	  puts ("Bah!  The filesystem is mounted with noatime");
+	  return 0;
+	}
+    }
+
   /* Make sure it gets removed.  */
   add_temp_file (buf);