ctdb-daemon: Remove duplicate code with refactored function
authorAmitay Isaacs <amitay@gmail.com>
Fri, 15 Aug 2014 03:33:24 +0000 (13:33 +1000)
committerMartin Schwenke <martins@samba.org>
Fri, 5 Sep 2014 05:05:10 +0000 (07:05 +0200)
Signed-off-by: Amitay Isaacs <amitay@gmail.com>
Reviewed-by: Martin Schwenke <martin@meltin.net>
ctdb/server/ctdb_call.c
ctdb/server/ctdb_daemon.c

index 901e5859a4b065a3f37e8ef591d9b5016dc11836..cbbfc59d633e50cd7914284d65529034afa3598e 100644 (file)
@@ -281,16 +281,13 @@ ctdb_set_sticky_pindown(struct ctdb_context *ctdb, struct ctdb_db_context *ctdb_
        uint32_t *k;
        struct ctdb_sticky_record *sr;
 
-       k = talloc_zero_size(tmp_ctx, ((key.dsize + 3) & 0xfffffffc) + 4);
+       k = ctdb_key_to_idkey(tmp_ctx, key);
        if (k == NULL) {
                DEBUG(DEBUG_ERR,("Failed to allocate key for sticky record\n"));
                talloc_free(tmp_ctx);
                return -1;
        }
 
-       k[0] = (key.dsize + 3) / 4 + 1;
-       memcpy(&k[1], key.dptr, key.dsize);
-
        sr = trbt_lookuparray32(ctdb_db->sticky_records, k[0], &k[0]);
        if (sr == NULL) {
                talloc_free(tmp_ctx);
@@ -538,16 +535,13 @@ ctdb_make_record_sticky(struct ctdb_context *ctdb, struct ctdb_db_context *ctdb_
        uint32_t *k;
        struct ctdb_sticky_record *sr;
 
-       k = talloc_zero_size(tmp_ctx, ((key.dsize + 3) & 0xfffffffc) + 4);
+       k = ctdb_key_to_idkey(tmp_ctx, key);
        if (k == NULL) {
                DEBUG(DEBUG_ERR,("Failed to allocate key for sticky record\n"));
                talloc_free(tmp_ctx);
                return -1;
        }
 
-       k[0] = (key.dsize + 3) / 4 + 1;
-       memcpy(&k[1], key.dptr, key.dsize);
-
        sr = trbt_lookuparray32(ctdb_db->sticky_records, k[0], &k[0]);
        if (sr != NULL) {
                talloc_free(tmp_ctx);
@@ -621,16 +615,13 @@ ctdb_defer_pinned_down_request(struct ctdb_context *ctdb, struct ctdb_db_context
        struct ctdb_sticky_record *sr;
        struct pinned_down_deferred_call *pinned_down;
 
-       k = talloc_zero_size(tmp_ctx, ((key.dsize + 3) & 0xfffffffc) + 4);
+       k = ctdb_key_to_idkey(tmp_ctx, key);
        if (k == NULL) {
                DEBUG(DEBUG_ERR,("Failed to allocate key for sticky record\n"));
                talloc_free(tmp_ctx);
                return -1;
        }
 
-       k[0] = (key.dsize + 3) / 4 + 1;
-       memcpy(&k[1], key.dptr, key.dsize);
-
        sr = trbt_lookuparray32(ctdb_db->sticky_records, k[0], &k[0]);
        if (sr == NULL) {
                talloc_free(tmp_ctx);
index da2f42e9a97db44e9b740acb7fd027224987cfc7..a9a0b8d3efaec5ab5fff4ab471442e3d56bb0906 100644 (file)
@@ -504,15 +504,12 @@ static int setup_deferred_fetch_locks(struct ctdb_db_context *ctdb_db, struct ct
        uint32_t *k;
        struct ctdb_deferred_fetch_queue *dfq;
 
-       k = talloc_zero_size(call, ((call->key.dsize + 3) & 0xfffffffc) + 4);
+       k = ctdb_key_to_idkey(call, call->key);
        if (k == NULL) {
                DEBUG(DEBUG_ERR,("Failed to allocate key for deferred fetch\n"));
                return -1;
        }
 
-       k[0] = (call->key.dsize + 3) / 4 + 1;
-       memcpy(&k[1], call->key.dptr, call->key.dsize);
-
        dfq  = talloc(call, struct ctdb_deferred_fetch_queue);
        if (dfq == NULL) {
                DEBUG(DEBUG_ERR,("Failed to allocate key for deferred fetch queue structure\n"));
@@ -543,15 +540,12 @@ static int requeue_duplicate_fetch(struct ctdb_db_context *ctdb_db, struct ctdb_
        struct ctdb_deferred_fetch_queue *dfq;
        struct ctdb_deferred_fetch_call *dfc;
 
-       k = talloc_zero_size(c, ((key.dsize + 3) & 0xfffffffc) + 4);
+       k = ctdb_key_to_idkey(c, key);
        if (k == NULL) {
                DEBUG(DEBUG_ERR,("Failed to allocate key for deferred fetch\n"));
                return -1;
        }
 
-       k[0] = (key.dsize + 3) / 4 + 1;
-       memcpy(&k[1], key.dptr, key.dsize);
-
        dfq = trbt_lookuparray32(ctdb_db->deferred_fetch, k[0], &k[0]);
        if (dfq == NULL) {
                talloc_free(k);