/*****************************************************************************
- * RRDtool 1.3.1 Copyright by Tobi Oetiker, 1997-2008
+ * RRDtool 1.3.2 Copyright by Tobi Oetiker, 1997-2008
*****************************************************************************
* rrd_open.c Open an RRD File
*****************************************************************************
mm_flags |= MAP_NONBLOCK; /* just populate ptes */
#endif
}
-
#if defined(_WIN32) && !defined(__CYGWIN__) && !defined(__CYGWIN32__)
flags |= O_BINARY;
#endif
rrd->rra_def[i].row_cnt * rrd->stat_head->ds_cnt *
sizeof(rrd_value_t);
}
+
+ if (dontneed_start < rrd_file->file_len) {
#ifdef USE_MADVISE
- madvise(rrd_file->file_start + dontneed_start,
- rrd_file->file_len - dontneed_start, MADV_DONTNEED);
+ madvise(rrd_file->file_start + dontneed_start,
+ rrd_file->file_len - dontneed_start, MADV_DONTNEED);
#endif
#ifdef HAVE_POSIX_FADVISE
- posix_fadvise(rrd_file->fd, dontneed_start,
- rrd_file->file_len - dontneed_start, POSIX_FADV_DONTNEED);
+ posix_fadvise(rrd_file->fd, dontneed_start,
+ rrd_file->file_len - dontneed_start,
+ POSIX_FADV_DONTNEED);
#endif
+ }
+
#if defined DEBUG && DEBUG > 1
mincore_print(rrd_file, "after");
#endif
/* Get current position in rrd_file. */
-inline off_t rrd_tell(
+off_t rrd_tell(
rrd_file_t *rrd_file)
{
return rrd_file->pos;
/* Read count bytes into buffer buf, starting at rrd_file->pos.
* Returns the number of bytes read or <0 on error. */
-inline ssize_t rrd_read(
+ssize_t rrd_read(
rrd_file_t *rrd_file,
void *buf,
size_t count)
* rrd_file->pos of rrd_file->fd.
* Returns the number of bytes written or <0 on error. */
-inline ssize_t rrd_write(
+ssize_t rrd_write(
rrd_file_t *rrd_file,
const void *buf,
size_t count)
/* flush all data pending to be written to FD. */
-inline void rrd_flush(
+void rrd_flush(
rrd_file_t *rrd_file)
{
if (fdatasync(rrd_file->fd) != 0) {