1 diff a/src/rrd_open.c b/src/rrd_open.c
2 --- a/src/rrd_open.c
3 +++ b/src/rrd_open.c
4 @@ -363,14 +363,19 @@ void rrd_dontneed(
5 rrd->rra_def[i].row_cnt * rrd->stat_head->ds_cnt *
6 sizeof(rrd_value_t);
7 }
8 +
9 + if (dontneed_start < rrd_file->file_len) {
10 #ifdef USE_MADVISE
11 - madvise(rrd_file->file_start + dontneed_start,
12 - rrd_file->file_len - dontneed_start, MADV_DONTNEED);
13 + madvise(rrd_file->file_start + dontneed_start,
14 + rrd_file->file_len - dontneed_start, MADV_DONTNEED);
15 #endif
16 #ifdef HAVE_POSIX_FADVISE
17 - posix_fadvise(rrd_file->fd, dontneed_start,
18 - rrd_file->file_len - dontneed_start, POSIX_FADV_DONTNEED);
19 + posix_fadvise(rrd_file->fd, dontneed_start,
20 + rrd_file->file_len - dontneed_start,
21 + POSIX_FADV_DONTNEED);
22 #endif
23 + }
24 +
25 #if defined DEBUG && DEBUG > 1
26 mincore_print(rrd_file, "after");
27 #endif