summaryrefslogtreecommitdiffstats
path: root/xlators/protocol
diff options
context:
space:
mode:
Diffstat (limited to 'xlators/protocol')
-rw-r--r--xlators/protocol/client/src/client-handshake.c16
-rw-r--r--xlators/protocol/client/src/client.c2
2 files changed, 5 insertions, 13 deletions
diff --git a/xlators/protocol/client/src/client-handshake.c b/xlators/protocol/client/src/client-handshake.c
index ca3d140d08e..6429dc2e8ae 100644
--- a/xlators/protocol/client/src/client-handshake.c
+++ b/xlators/protocol/client/src/client-handshake.c
@@ -32,7 +32,7 @@ int client_set_lk_version_cbk (struct rpc_req *req, struct iovec *iov,
int client_set_lk_version (xlator_t *this);
typedef struct client_fd_lk_local {
- int ref;
+ gf_atomic_t ref;
gf_boolean_t error;
gf_lock_t lock;
clnt_fd_ctx_t *fdctx;
@@ -285,11 +285,7 @@ clnt_fd_lk_local_ref (xlator_t *this, clnt_fd_lk_local_t *local)
{
GF_VALIDATE_OR_GOTO (this->name, local, out);
- LOCK (&local->lock);
- {
- local->ref++;
- }
- UNLOCK (&local->lock);
+ GF_ATOMIC_INC (local->ref);
out:
return local;
}
@@ -301,11 +297,7 @@ clnt_fd_lk_local_unref (xlator_t *this, clnt_fd_lk_local_t *local)
GF_VALIDATE_OR_GOTO (this->name, local, out);
- LOCK (&local->lock);
- {
- ref = --local->ref;
- }
- UNLOCK (&local->lock);
+ ref = GF_ATOMIC_DEC (local->ref);
if (ref == 0) {
LOCK_DESTROY (&local->lock);
@@ -325,7 +317,7 @@ clnt_fd_lk_local_create (clnt_fd_ctx_t *fdctx)
if (!local)
goto out;
- local->ref = 1;
+ GF_ATOMIC_INIT (local->ref, 1);
local->error = _gf_false;
local->fdctx = fdctx;
diff --git a/xlators/protocol/client/src/client.c b/xlators/protocol/client/src/client.c
index 8df697ed883..8ec9eaeb8a9 100644
--- a/xlators/protocol/client/src/client.c
+++ b/xlators/protocol/client/src/client.c
@@ -2844,7 +2844,7 @@ client_fd_lk_ctx_dump (xlator_t *this, fd_lk_ctx_t *lk_ctx, int nth_fd)
fd_lk_ctx_node_t *plock = NULL;
char key[GF_DUMP_MAX_BUF_LEN] = {0,};
- lk_ctx_ref = fd_lk_ctx_try_ref (lk_ctx);
+ lk_ctx_ref = fd_lk_ctx_ref (lk_ctx);
if (!lk_ctx_ref)
return;