[PATCH] ctdb-server: Only set destructor if required

Swen Schillig swen at vnet.ibm.com
Fri Mar 9 08:16:27 UTC 2018


Please review and push if OK.

Thanks in advance.

Cheers Swen
-------------- next part --------------
From d77d799df195052a725b8b656f8db652ef482836 Mon Sep 17 00:00:00 2001
From: Swen Schillig <swen at vnet.ibm.com>
Date: Thu, 8 Feb 2018 12:19:09 +0100
Subject: [PATCH] ctdb-server: Only set destructor if required

Set the detructor in ctdb_start_revoke_ro_record after the revokechild_handle
was added to the list.

Signed-off-by: Swen Schillig <swen at vnet.ibm.com>
---
 ctdb/server/ctdb_call.c | 9 ++++-----
 1 file changed, 4 insertions(+), 5 deletions(-)

diff --git a/ctdb/server/ctdb_call.c b/ctdb/server/ctdb_call.c
index 84df067095c..22c07872c81 100644
--- a/ctdb/server/ctdb_call.c
+++ b/ctdb/server/ctdb_call.c
@@ -1850,8 +1850,6 @@ int ctdb_start_revoke_ro_record(struct ctdb_context *ctdb,
 	rev_hdl->fd[0]     = -1;
 	rev_hdl->fd[1]     = -1;
 
-	talloc_set_destructor(rev_hdl, revokechild_destructor);
-
 	rev_hdl->key.dsize = key.dsize;
 	rev_hdl->key.dptr  = talloc_memdup(rev_hdl, key.dptr, key.dsize);
 	if (rev_hdl->key.dptr == NULL) {
@@ -1894,9 +1892,6 @@ int ctdb_start_revoke_ro_record(struct ctdb_context *ctdb,
 	rev_hdl->fd[1] = -1;
 	set_close_on_exec(rev_hdl->fd[0]);
 
-	/* This is an active revokechild child process */
-	DLIST_ADD_END(ctdb_db->revokechild_active, rev_hdl);
-
 	rev_hdl->fde = tevent_add_fd(ctdb->ev, rev_hdl, rev_hdl->fd[0],
 				     TEVENT_FD_READ, revokechild_handler,
 				     (void *)rev_hdl);
@@ -1906,6 +1901,10 @@ int ctdb_start_revoke_ro_record(struct ctdb_context *ctdb,
 	}
 	tevent_fd_set_auto_close(rev_hdl->fde);
 
+	/* This is an active revokechild child process */
+	DLIST_ADD_END(ctdb_db->revokechild_active, rev_hdl);
+	talloc_set_destructor(rev_hdl, revokechild_destructor);
+
 	return 0;
 err_out:
 	talloc_free(rev_hdl);
-- 
2.14.3



More information about the samba-technical mailing list