X-Git-Url: https://git.octo.it/?p=rrdtool.git;a=blobdiff_plain;f=src%2Frrd_open.c;h=f262413befce5f8e9f561b4d32eef0bfaef8a87f;hp=86d608cc556a0838419882f55dafb36341d97523;hb=428c0dfd6c70a0e70039d15c2de3a729e01f8fef;hpb=672a5d8877e055d90272210497302afb26e28c8f diff --git a/src/rrd_open.c b/src/rrd_open.c index 86d608c..f262413 100644 --- a/src/rrd_open.c +++ b/src/rrd_open.c @@ -79,14 +79,13 @@ rrd_file_t *rrd_open( rrd_file_t *rrd_file = NULL; off_t newfile_size = 0; - if ((rdwr & RRD_CREAT) && (rdwr & RRD_CREAT_SETSIZE)) { + if (rdwr & RRD_CREAT) { /* yes bad inline signaling alert, we are using the floatcookie to pass the size in ... only used in resize */ newfile_size = (off_t) rrd->stat_head->float_cookie; free(rrd->stat_head); } - if(!(rdwr & RRD_CREAT)) - rrd_init(rrd); + rrd_init(rrd); rrd_file = malloc(sizeof(rrd_file_t)); if (rrd_file == NULL) { rrd_set_error("allocating rrd_file descriptor for '%s'", file_name); @@ -171,13 +170,7 @@ rrd_file_t *rrd_open( } } */ - #ifdef HAVE_MMAP - if(rrd_file->file_len == 0 && (rdwr & RRD_CREAT)) - { - rrd_file->file_start = NULL; - goto out_done; - } data = mmap(0, rrd_file->file_len, mm_prot, mm_flags, rrd_file->fd, offset); @@ -542,36 +535,10 @@ ssize_t rrd_write( size_t count) { #ifdef HAVE_MMAP - /* These flags are used if creating a new RRD */ - int mm_prot = PROT_READ | PROT_WRITE, mm_flags = MAP_SHARED; - int old_size = rrd_file->file_len; - int new_size = rrd_file->file_len; if (count == 0) return 0; if (buf == NULL) return -1; /* EINVAL */ - - if((rrd_file->pos + count) > old_size) - { - new_size = rrd_file->pos + count; - rrd_file->file_len = new_size; - lseek(rrd_file->fd, new_size - 1, SEEK_SET); - write(rrd_file->fd, "\0", 1); /* poke */ - lseek(rrd_file->fd, 0, SEEK_SET); - if(rrd_file->file_start == NULL) - { - rrd_file->file_start = mmap(0, new_size, mm_prot, mm_flags, - rrd_file->fd, 0); - } - else - rrd_file->file_start = mremap(rrd_file->file_start, old_size, new_size, MREMAP_MAYMOVE); - - if (rrd_file->file_start == MAP_FAILED) { - rrd_set_error("m(re)maping file : %s", - rrd_strerror(errno)); - return -1; - } - } memcpy(rrd_file->file_start + rrd_file->pos, buf, count); rrd_file->pos += count; return count; /* mimmic write() semantics */