vacuum: introduce a helper variable in add_record_to_vacuum_fetch_list() to reduce...
authorMichael Adam <obnox@samba.org>
Fri, 16 Dec 2011 09:43:06 +0000 (10:43 +0100)
committerMichael Adam <obnox@samba.org>
Thu, 12 Jan 2012 07:50:36 +0000 (08:50 +0100)
(cherry picked from commit 48fe56ea27e3649ae7a67257fdce54f973e7c3c5)

server/ctdb_vacuum.c

index fa3aae0f97a6f072fe5911ffd202e8a61fc106c2..5f0eac32d0eedeb11499059f92bdee62dda1bc24 100644 (file)
@@ -173,27 +173,30 @@ static int add_record_to_vacuum_fetch_list(struct vacuum_data *vdata,
        struct ctdb_rec_data *rec;
        uint32_t lmaster;
        size_t old_size;
+       struct ctdb_marshall_buffer *vfl;
 
        lmaster = ctdb_lmaster(ctdb, &key);
 
-       rec = ctdb_marshall_record(vdata->list[lmaster], ctdb->pnn, key, NULL, tdb_null);
+       vfl = vdata->list[lmaster];
+
+       rec = ctdb_marshall_record(vfl, ctdb->pnn, key, NULL, tdb_null);
        if (rec == NULL) {
                DEBUG(DEBUG_ERR,(__location__ " Out of memory\n"));
                vdata->traverse_error = true;
                return -1;
        }
 
-       old_size = talloc_get_size(vdata->list[lmaster]);
-       vdata->list[lmaster] = talloc_realloc_size(NULL, vdata->list[lmaster],
-                                                  old_size + rec->length);
-       if (vdata->list[lmaster] == NULL) {
+       old_size = talloc_get_size(vfl);
+       vfl = talloc_realloc_size(NULL, vfl, old_size + rec->length);
+       if (vfl == NULL) {
                DEBUG(DEBUG_ERR,(__location__ " Failed to expand\n"));
                vdata->traverse_error = true;
                return -1;
        }
+       vdata->vacuum_fetch_list[lmaster] = vfl;
 
-       vdata->list[lmaster]->count++;
-       memcpy(old_size+(uint8_t *)vdata->list[lmaster], rec, rec->length);
+       vfl->count++;
+       memcpy(old_size+(uint8_t *)vfl, rec, rec->length);
        talloc_free(rec);
 
        vdata->total++;