about summary refs log tree commit homepage
diff options
context:
space:
mode:
-rw-r--r--fadvise.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/fadvise.c b/fadvise.c
index 12c9b1b..b4b85d7 100644
--- a/fadvise.c
+++ b/fadvise.c
@@ -31,9 +31,15 @@ static void apply_fadvise(const char *path, off_t offset, off_t len, int advice)
         int fd;
 
         if ((fd = open(path, O_RDONLY|O_NOATIME)) < 0) {
+                if (errno == EPERM && O_NOATIME != 0) {
+                        fd = open(path, O_RDONLY);
+                        if (fd >= 0)
+                                goto ok;
+                }
                 fprintf(stderr, "%s: open(): %s\n", path, strerror(errno));
                 return;
         }
+ok:
 
         if (len <= 0) {
                 /* for compatibility with kernels < 2.6.6 */