diff options
author | Ulrich Drepper <drepper@redhat.com> | 2002-09-04 20:50:52 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 2002-09-04 20:50:52 +0000 |
commit | 06a7803ca04aedaadec19e0a36c563f716553548 (patch) | |
tree | 03d7d58c5c1102bae27b5ba6c2a1b09c2f3d6cdf | |
parent | ba5da1e2ed443247eaefb6cc80c39fdd5a66273c (diff) | |
download | glibc-06a7803ca04aedaadec19e0a36c563f716553548.tar.gz |
(do_test): Make sure noatime flag isn't set for filesystem.
-rw-r--r-- | libio/tst-atime.c | 21 |
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); |