diff --git a/src/disk.c b/src/disk.c
index f6234c22837e6e2642ab515be68d0f0b5097226c..ea4971757b4d5903e2630c6e287bc4d6c34622fb 100644 (file)
--- a/src/disk.c
+++ b/src/disk.c
{
char *name;
+ /* This overflows in roughly 1361 year */
+ unsigned int poll_count;
+
unsigned int read_sectors;
unsigned int write_sectors;
rrd_update_file (host, file, val, part_ds_def, part_ds_num);
}
+#if DISK_HAVE_READ
#define BUFSIZE 512
static void disk_submit (char *disk_name,
unsigned long long read_count,
}
#undef BUFSIZE
-#if DISK_HAVE_READ
static void disk_read (void)
{
#ifdef KERNEL_LINUX
read_bytes = ds->read_bytes;
write_bytes = ds->write_bytes;
+ /* Don't write to the RRDs if we've just started.. */
+ ds->poll_count++;
+ if (ds->poll_count <= 6)
+ continue;
if ((read_count == 0) && (write_count == 0))
continue;
}
#endif /* defined(HAVE_LIBKSTAT) */
} /* static void disk_read (void) */
+#else
+# define disk_read NULL
#endif /* DISK_HAVE_READ */
void module_register (void)
{
plugin_register ("partition", NULL, NULL, partition_write);
- plugin_register (MODULE_NAME, disk_init,
-#if DISK_HAVE_READ
- disk_read,
-#else
- NULL,
-#endif
- disk_write);
+ plugin_register (MODULE_NAME, disk_init, disk_read, disk_write);
}
#undef MODULE_NAME