[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