From 3d0c87a38802b0751c79ec0f11bb7f8972f417cd Mon Sep 17 00:00:00 2001 From: Kaushal M Date: Tue, 28 Apr 2015 18:42:41 +0530 Subject: glusterd: Use uint32_t for peerinfo generation number Using a uint64_t for the peerinfo generation number was overkill for how the generation number is used within GlusterD. It also prevented GlusterD from running on 32-bit architechtures, as uatomic_add_return doesn't support 64-bit values on 32-bit architechtures. This change was developed on the git branch at [1]. This commit is a combination of the following commits on the development branch. b78dba4 Use 32-bit generation number 2c37e4b Change other generation number variables to uint32_t [1]: https://github.com/kshlm/glusterfs/tree/urcu Change-Id: I0f310f56a4fb97d6bcbc23255a379ed5bb1ed9e1 BUG: 1205186 Signed-off-by: Kaushal M Reviewed-on: http://review.gluster.org/10425 Reviewed-by: Anand Nekkunti Tested-by: Gluster Build System Reviewed-by: Emmanuel Dreyfus Tested-by: Emmanuel Dreyfus Reviewed-by: Atin Mukherjee Reviewed-by: Krishnan Parthasarathi Tested-by: Krishnan Parthasarathi --- xlators/mgmt/glusterd/src/glusterd-mgmt.c | 16 ++++++++-------- xlators/mgmt/glusterd/src/glusterd-op-sm.h | 2 +- xlators/mgmt/glusterd/src/glusterd-sm.h | 2 +- xlators/mgmt/glusterd/src/glusterd.h | 2 +- 4 files changed, 11 insertions(+), 11 deletions(-) (limited to 'xlators/mgmt') diff --git a/xlators/mgmt/glusterd/src/glusterd-mgmt.c b/xlators/mgmt/glusterd/src/glusterd-mgmt.c index 539efb5900d..a99f8485e16 100644 --- a/xlators/mgmt/glusterd/src/glusterd-mgmt.c +++ b/xlators/mgmt/glusterd/src/glusterd-mgmt.c @@ -393,7 +393,7 @@ int glusterd_mgmt_v3_initiate_lockdown (glusterd_op_t op, dict_t *dict, char **op_errstr, gf_boolean_t *is_acquired, - uint64_t txn_generation) + uint32_t txn_generation) { char *volname = NULL; glusterd_peerinfo_t *peerinfo = NULL; @@ -664,7 +664,7 @@ out: int glusterd_mgmt_v3_pre_validate (glusterd_op_t op, dict_t *req_dict, char **op_errstr, - uint64_t txn_generation) + uint32_t txn_generation) { int32_t ret = -1; int32_t peer_cnt = 0; @@ -918,7 +918,7 @@ out: int glusterd_mgmt_v3_brick_op (glusterd_op_t op, dict_t *req_dict, char **op_errstr, - uint64_t txn_generation) + uint32_t txn_generation) { int32_t ret = -1; int32_t peer_cnt = 0; @@ -1158,7 +1158,7 @@ out: int glusterd_mgmt_v3_commit (glusterd_op_t op, dict_t *op_ctx, dict_t *req_dict, - char **op_errstr, uint64_t txn_generation) + char **op_errstr, uint32_t txn_generation) { int32_t ret = -1; int32_t peer_cnt = 0; @@ -1378,7 +1378,7 @@ out: int glusterd_mgmt_v3_post_validate (glusterd_op_t op, int32_t op_ret, dict_t *dict, dict_t *req_dict, char **op_errstr, - uint64_t txn_generation) + uint32_t txn_generation) { int32_t ret = -1; int32_t peer_cnt = 0; @@ -1588,7 +1588,7 @@ int glusterd_mgmt_v3_release_peer_locks (glusterd_op_t op, dict_t *dict, int32_t op_ret, char **op_errstr, gf_boolean_t is_acquired, - uint64_t txn_generation) + uint32_t txn_generation) { int32_t ret = -1; int32_t peer_cnt = 0; @@ -1673,7 +1673,7 @@ glusterd_mgmt_v3_initiate_all_phases (rpcsvc_request_t *req, glusterd_op_t op, xlator_t *this = NULL; gf_boolean_t is_acquired = _gf_false; uuid_t *originator_uuid = NULL; - uint64_t txn_generation = 0; + uint32_t txn_generation = 0; this = THIS; GF_ASSERT (this); @@ -1886,7 +1886,7 @@ glusterd_mgmt_v3_initiate_snap_phases (rpcsvc_request_t *req, glusterd_op_t op, uuid_t *originator_uuid = NULL; gf_boolean_t success = _gf_false; char *cli_errstr = NULL; - uint64_t txn_generation = 0; + uint32_t txn_generation = 0; this = THIS; GF_ASSERT (this); diff --git a/xlators/mgmt/glusterd/src/glusterd-op-sm.h b/xlators/mgmt/glusterd/src/glusterd-op-sm.h index f6eaa372f35..6a1baa46f39 100644 --- a/xlators/mgmt/glusterd/src/glusterd-op-sm.h +++ b/xlators/mgmt/glusterd/src/glusterd-op-sm.h @@ -103,7 +103,7 @@ struct glusterd_op_info_ { int32_t op_errno; char *op_errstr; struct cds_list_head pending_bricks; - uint64_t txn_generation; + uint32_t txn_generation; }; typedef struct glusterd_op_info_ glusterd_op_info_t; diff --git a/xlators/mgmt/glusterd/src/glusterd-sm.h b/xlators/mgmt/glusterd/src/glusterd-sm.h index dceaa3e46b9..d75baa8d128 100644 --- a/xlators/mgmt/glusterd/src/glusterd-sm.h +++ b/xlators/mgmt/glusterd/src/glusterd-sm.h @@ -104,7 +104,7 @@ struct glusterd_peerinfo_ { /* Members required for proper cleanup using RCU */ gd_rcu_head rcu_head; pthread_mutex_t delete_lock; - uint64_t generation; + uint32_t generation; }; typedef struct glusterd_peerinfo_ glusterd_peerinfo_t; diff --git a/xlators/mgmt/glusterd/src/glusterd.h b/xlators/mgmt/glusterd/src/glusterd.h index 60c3ebdf9bb..1653549d2b0 100644 --- a/xlators/mgmt/glusterd/src/glusterd.h +++ b/xlators/mgmt/glusterd/src/glusterd.h @@ -172,7 +172,7 @@ typedef struct { gf_store_handle_t *missed_snaps_list_shandle; struct cds_list_head missed_snaps_list; int ping_timeout; - uint64_t generation; + uint32_t generation; } glusterd_conf_t; -- cgit