new trunk based on current 1.2
[rrdtool.git] / src / rrd_update.c
index 91a1d1b..ed79a6a 100644 (file)
@@ -10,7 +10,7 @@
 #include <sys/types.h>
 #include <fcntl.h>
 #ifdef HAVE_MMAP
- #include <sys/mman.h>
+include <sys/mman.h>
 #endif
 
 #if defined(_WIN32) && !defined(__CYGWIN__) && !defined(__CYGWIN32__)
@@ -427,6 +427,11 @@ _rrd_update(const char *filename, const char *tmplt, int argc, const char **argv
         fclose(rrd_file);
        return(-1);
     }
+#ifdef HAVE_MADVISE
+    /* when we use mmaping we tell the kernel the mmap equivalent
+       of POSIX_FADV_RANDOM */
+    madvise(rrd_mmaped_file,rrd_filesize,POSIX_MADV_RANDOM);
+#endif
 #endif
     /* loop through the arguments. */
     for(arg_i=0; arg_i<argc;arg_i++) {
@@ -1195,7 +1200,7 @@ _rrd_update(const char *filename, const char *tmplt, int argc, const char **argv
                i < rrd.stat_head->rra_cnt;
            rra_start += rrd.rra_def[i].row_cnt * rrd.stat_head -> ds_cnt * sizeof(rrd_value_t),
                i++) {
-               /* is there anything to write for this RRA? If not, continue. */
+               /* is th5Aere anything to write for this RRA? If not, continue. */
         if (rra_step_cnt[i] == 0) continue;
 
                /* write the first row */
@@ -1398,7 +1403,8 @@ _rrd_update(const char *filename, const char *tmplt, int argc, const char **argv
        fclose(rrd_file);
        return(-1);
     }
-#ifdef HAVE_POSIX_FADVISE
+    
+#ifdef HAVE_POSIX_FADVISExxx
 
     /* with update we have write ops, so they will probably not be done by now, this means
        the buffers will not get freed. But calling this for the whole file - header
@@ -1449,7 +1455,7 @@ _rrd_update(const char *filename, const char *tmplt, int argc, const char **argv
            rra_start += rrd.rra_def[i].row_cnt
              *rrd.stat_head->ds_cnt*sizeof(rrd_value_t);
          }
-#ifdef HAVE_POSIX_FADVISE
+#ifdef HAVE_POSIX_FADVISExxx
           /* same procedure as above ... */
           if (0 != posix_fadvise(fileno(rrd_file), rra_begin, 0, POSIX_FADV_DONTNEED)) {
              rrd_set_error("setting POSIX_FADV_DONTNEED on '%s': %s",filename, rrd_strerror(errno));