[PATCH] ctdb: Replace mem-alloc/assign by move/memdup

Swen Schillig swen at vnet.ibm.com
Fri Mar 9 08:05:25 UTC 2018


Please review and push if OK.

Thanks in advance.

Cheers Swen
-------------- next part --------------
From d16a94d27ab647340d065485b5d7d23c5aef4f14 Mon Sep 17 00:00:00 2001
From: Swen Schillig <swen at vnet.ibm.com>
Date: Thu, 8 Feb 2018 08:55:33 +0100
Subject: [PATCH] ctdb: Replace mem-alloc/assign by move/memdup

Replaced memory assignment sequences by optimized routines.

Signed-off-by: Swen Schillig <swen at vnet.ibm.com>
---
 ctdb/client/ctdb_client.c | 4 ++--
 ctdb/server/ctdb_call.c   | 6 ++----
 2 files changed, 4 insertions(+), 6 deletions(-)

diff --git a/ctdb/client/ctdb_client.c b/ctdb/client/ctdb_client.c
index a7624b7e3c8..955bd89d940 100644
--- a/ctdb/client/ctdb_client.c
+++ b/ctdb/client/ctdb_client.c
@@ -388,13 +388,13 @@ static struct ctdb_client_call_state *ctdb_client_call_local_send(struct ctdb_db
 
 	state = talloc_zero(ctdb_db, struct ctdb_client_call_state);
 	CTDB_NO_MEMORY_NULL(ctdb, state);
-	state->call = talloc_zero(state, struct ctdb_call);
+
+	state->call = talloc_memdup(state, call, sizeof(struct ctdb_call));
 	CTDB_NO_MEMORY_NULL(ctdb, state->call);
 
 	talloc_steal(state, data->dptr);
 
 	state->state   = CTDB_CALL_DONE;
-	*(state->call) = *call;
 	state->ctdb_db = ctdb_db;
 
 	ret = ctdb_call_local(ctdb_db, state->call, header, state, data, true);
diff --git a/ctdb/server/ctdb_call.c b/ctdb/server/ctdb_call.c
index 17d6f98e37c..7657267528e 100644
--- a/ctdb/server/ctdb_call.c
+++ b/ctdb/server/ctdb_call.c
@@ -1434,9 +1434,8 @@ struct ctdb_call_state *ctdb_call_local_send(struct ctdb_db_context *ctdb_db,
 	talloc_steal(state, data->dptr);
 
 	state->state = CTDB_CALL_DONE;
-	state->call  = talloc(state, struct ctdb_call);
+	state->call  = talloc_memdup(state, call, sizeof(struct ctdb_call));
 	CTDB_NO_MEMORY_NULL(ctdb, state->call);
-	*(state->call) = *call;
 	state->ctdb_db = ctdb_db;
 
 	ret = ctdb_call_local(ctdb_db, state->call, header, state, data, true);
@@ -1472,7 +1471,7 @@ struct ctdb_call_state *ctdb_daemon_call_send_remote(struct ctdb_db_context *ctd
 
 	state = talloc_zero(ctdb_db, struct ctdb_call_state);
 	CTDB_NO_MEMORY_NULL(ctdb, state);
-	state->call = talloc(state, struct ctdb_call);
+	state->call = talloc_memdup(state, call, sizeof(struct ctdb_call));
 	CTDB_NO_MEMORY_NULL(ctdb, state->call);
 
 	state->reqid = reqid_new(ctdb->idr, state);
@@ -1497,7 +1496,6 @@ struct ctdb_call_state *ctdb_daemon_call_send_remote(struct ctdb_db_context *ctd
 	memcpy(&state->c->data[0], call->key.dptr, call->key.dsize);
 	memcpy(&state->c->data[call->key.dsize], 
 	       call->call_data.dptr, call->call_data.dsize);
-	*(state->call)              = *call;
 	state->call->call_data.dptr = &state->c->data[call->key.dsize];
 	state->call->key.dptr       = &state->c->data[0];
 
-- 
2.14.3



More information about the samba-technical mailing list