projects
/
rrdtool.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
since rrdcached uses pthread functions, use the threadsafe version of librrd as well...
[rrdtool.git]
/
src
/
rrd_open.c
diff --git
a/src/rrd_open.c
b/src/rrd_open.c
index
51b621f
..
af08f90
100644
(file)
--- a/
src/rrd_open.c
+++ b/
src/rrd_open.c
@@
-321,9
+321,9
@@
void rrd_dontneed(
rrd_t *rrd)
{
#if defined USE_MADVISE || defined HAVE_POSIX_FADVISE
rrd_t *rrd)
{
#if defined USE_MADVISE || defined HAVE_POSIX_FADVISE
-
unsigned long
dontneed_start;
-
unsigned long
rra_start;
-
unsigned long
active_block;
+
off_t
dontneed_start;
+
off_t
rra_start;
+
off_t
active_block;
unsigned long i;
ssize_t _page_size = sysconf(_SC_PAGESIZE);
unsigned long i;
ssize_t _page_size = sysconf(_SC_PAGESIZE);
@@
-363,14
+363,19
@@
void rrd_dontneed(
rrd->rra_def[i].row_cnt * rrd->stat_head->ds_cnt *
sizeof(rrd_value_t);
}
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
#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
#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
#endif
+ }
+
#if defined DEBUG && DEBUG > 1
mincore_print(rrd_file, "after");
#endif
#if defined DEBUG && DEBUG > 1
mincore_print(rrd_file, "after");
#endif