Bernhard Fischer:
[rrdtool.git] / src / rrd_update.c
index 6ef5d3f..d8632a7 100644 (file)
@@ -68,7 +68,7 @@ static inline void normalize_time(
     }
 }
 
-static info_t *write_RRA_row(
+static inline info_t *write_RRA_row(
     rrd_file_t *rrd_file,
     rrd_t *rrd,
     unsigned long rra_idx,
@@ -104,7 +104,7 @@ static info_t *write_RRA_row(
         if (rrd_write
             (rrd_file,
              &(rrd->cdp_prep[cdp_idx].scratch[CDP_scratch_idx].u_val),
-             sizeof(rrd_value_t) * 1) != sizeof(rrd_value_t) * 1) {
+             sizeof(rrd_value_t)) != sizeof(rrd_value_t)) {
             rrd_set_error("writing rrd: %s", rrd_strerror(errno));
             return 0;
         }
@@ -323,7 +323,7 @@ int _rrd_update(
 
     rrd_file = rrd_open(filename, &rrd, RRD_READWRITE);
     if (rrd_file == NULL) {
-        goto err_out;
+        goto err_free;
     }
 
     /* initialize time */
@@ -446,7 +446,7 @@ int _rrd_update(
         free(pdp_temp);
         free(tmpl_idx);
         rrd_free(&rrd);
-        close(rrd_file->fd);
+        rrd_close(rrd_file);
         return (-1);
     }
 #ifdef USE_MADVISE
@@ -1334,12 +1334,10 @@ int _rrd_update(
                     (rrd.stat_head->ds_cnt) * (rrd.rra_ptr[i].cur_row) *
                     sizeof(rrd_value_t);
                 if (rra_pos_tmp != rra_current) {
-#ifndef HAVE_MMAP
                     if (rrd_seek(rrd_file, rra_pos_tmp, SEEK_SET) != 0) {
                         rrd_set_error("seek error in rrd");
                         break;
                     }
-#endif
                     rra_current = rra_pos_tmp;
                 }
 #ifdef DEBUG
@@ -1444,7 +1442,7 @@ int _rrd_update(
         rrd_set_error("seek rrd for live header writeback");
         goto err_free_pdp_new;
     }
-
+#ifndef HAVE_MMAP
     if (version >= 3) {
         if (rrd_write(rrd_file, rrd.live_head,
                       sizeof(live_head_t) * 1) != sizeof(live_head_t) * 1) {
@@ -1483,6 +1481,7 @@ int _rrd_update(
         rrd_set_error("rrd_write rra_ptr to rrd");
         goto err_free_pdp_new;
     }
+#endif
 #ifdef HAVE_POSIX_FADVISExxx
 
     /* with update we have write ops, so they will probably not be done by now, this means
@@ -1531,7 +1530,6 @@ int _rrd_update(
     }
 
     rrd_free(&rrd);
-    close(rrd_file->fd);
     rrd_close(rrd_file);
 
     free(pdp_new);
@@ -1549,9 +1547,9 @@ int _rrd_update(
   err_free_updvals:
     free(updvals);
   err_close:
-    rrd_free(&rrd);
-    close(rrd_file->fd);
     rrd_close(rrd_file);
+  err_free:
+    rrd_free(&rrd);
   err_out:
     return (-1);
 }