Does not change functionality, makes some code a bit more readable
and lessens code reuse.

Signed-off-by: Thomas Lamprecht <t.lampre...@proxmox.com>
---
 data/src/dcdb.c   |  6 +++---
 data/src/dfsm.c   | 21 +++++++++------------
 data/src/quorum.c | 23 +++++++++++------------
 3 files changed, 23 insertions(+), 27 deletions(-)

diff --git a/data/src/dcdb.c b/data/src/dcdb.c
index 307c7ec..b83caa4 100644
--- a/data/src/dcdb.c
+++ b/data/src/dcdb.c
@@ -918,13 +918,13 @@ ret:
        cfs_debug("leave %s (%d)", __func__, res);
 
        return res;
+
+unknown:
+       cfs_critical("received unknown message type (msg_type == %d)", 
msg_type);
 leave:
        res = -1;
        goto ret;
 
-unknown:
-       cfs_critical("received unknown message type (msg_type == %d)", 
msg_type);
-       goto leave;
 };
 
 static dfsm_callbacks_t dcdb_dfsm_callbacks = {
diff --git a/data/src/dfsm.c b/data/src/dfsm.c
index c14564f..bf2d78c 100644
--- a/data/src/dfsm.c
+++ b/data/src/dfsm.c
@@ -1371,13 +1371,12 @@ dfsm_initialize(dfsm_t *dfsm, int *fd)
        if (dfsm->cpg_handle == 0) {
                if ((result = cpg_initialize(&dfsm->cpg_handle, 
dfsm->cpg_callbacks)) != CS_OK) {
                        cfs_dom_critical(dfsm->log_domain, "cpg_initialize 
failed: %d", result);
-                       dfsm->cpg_handle = 0;
-                       goto fail;
+                       goto err_no_finalize;
                }
 
                if ((result = cpg_local_get(dfsm->cpg_handle, &dfsm->nodeid)) 
!= CS_OK) {
                        cfs_dom_critical(dfsm->log_domain, "cpg_local_get 
failed: %d", result);
-                       goto fail;
+                       goto err_finalize;
                }
 
                dfsm->pid = getpid();
@@ -1385,21 +1384,21 @@ dfsm_initialize(dfsm_t *dfsm, int *fd)
                result = cpg_context_set(dfsm->cpg_handle, dfsm);
                if (result != CS_OK) {
                        cfs_dom_critical(dfsm->log_domain, "cpg_context_set 
failed: %d", result);
-                       goto fail;
+                       goto err_finalize;
                }
        }
 
        result = cpg_fd_get(dfsm->cpg_handle, fd);
        if (result != CS_OK) {
                cfs_dom_critical(dfsm->log_domain, "cpg_fd_get failed: %d", 
result);
-               goto fail;
+               goto err_finalize;
        }
        
        return CS_OK;
 
-fail:
-       if (dfsm->cpg_handle) 
-               cpg_finalize(dfsm->cpg_handle);
+ err_finalize:
+       cpg_finalize(dfsm->cpg_handle);
+ err_no_finalize:
        dfsm->cpg_handle = 0;
        return result;
 }
@@ -1613,13 +1612,11 @@ service_dfsm_dispatch(
 
        return TRUE;
 
+finalize:
+       dfsm_finalize(dfsm);
 fail:
        cfs_service_set_restartable(service, dfsm_restartable(dfsm));
        return FALSE;
-
-finalize:
-       dfsm_finalize(dfsm);
-       goto fail;
 }
 
 static void 
diff --git a/data/src/quorum.c b/data/src/quorum.c
index 983a4da..1c258db 100644
--- a/data/src/quorum.c
+++ b/data/src/quorum.c
@@ -110,23 +110,18 @@ static int service_quorum_initialize(
                 result = quorum_initialize(&handle, &quorum_callbacks, 
&quorum_type);
                 if (result != CS_OK) {
                         cfs_critical("quorum_initialize failed: %d", result);
-                       private->handle = 0;
-                       return -1;
+                       goto err_reset_handle;
                }
 
                if (quorum_type != QUORUM_SET) {
-                       cfs_critical("quorum_initialize returned wron 
quorum_type: %d", quorum_type);
-                       quorum_finalize(handle);
-                       private->handle = 0;
-                       return -1;
+                       cfs_critical("quorum_initialize returned wrong 
quorum_type: %d", quorum_type);
+                       goto err_finalize;
                }
 
                result = quorum_context_set(handle, private);
                if (result != CS_OK) {
                        cfs_critical("quorum_context_set failed: %d", result);
-                       quorum_finalize(handle);
-                       private->handle = 0;
-                       return -1;
+                       goto err_finalize;
                }
 
                private->handle = handle;
@@ -136,9 +131,7 @@ static int service_quorum_initialize(
        result = quorum_trackstart(handle, CS_TRACK_CHANGES);
        if (result == CS_ERR_LIBRARY || result == CS_ERR_BAD_HANDLE) {
                cfs_critical("quorum_trackstart failed: %d - closing handle", 
result);
-               quorum_finalize(handle);
-               private->handle = 0;
-               return -1;
+               goto err_finalize;
        } else if (result != CS_OK) {
                cfs_critical("quorum_trackstart failed: %d - trying again", 
result);
                return -1;
@@ -151,6 +144,12 @@ static int service_quorum_initialize(
        }
 
        return quorum_fd;
+
+ err_finalize:
+       quorum_finalize(handle);
+ err_reset_handle:
+       private->handle = 0;
+       return -1;
 }
 
 static gboolean service_quorum_dispatch(
-- 
2.1.4


_______________________________________________
pve-devel mailing list
pve-devel@pve.proxmox.com
http://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel

Reply via email to