summaryrefslogtreecommitdiffstats
path: root/libglusterfs
diff options
context:
space:
mode:
Diffstat (limited to 'libglusterfs')
-rw-r--r--libglusterfs/src/dict.c13
-rw-r--r--libglusterfs/src/dict.h1
2 files changed, 7 insertions, 7 deletions
diff --git a/libglusterfs/src/dict.c b/libglusterfs/src/dict.c
index 22bf3f99d70..c4f3fb71de3 100644
--- a/libglusterfs/src/dict.c
+++ b/libglusterfs/src/dict.c
@@ -1433,7 +1433,7 @@ fail:
*/
-static int
+int
dict_get_with_ref (dict_t *this, char *key, data_t **data)
{
data_pair_t * pair = NULL;
@@ -1453,14 +1453,13 @@ dict_get_with_ref (dict_t *this, char *key, data_t **data)
LOCK (&this->lock);
{
pair = dict_lookup_common (this, key, hash);
- }
- UNLOCK (&this->lock);
- if (pair) {
- ret = 0;
- *data = data_ref (pair->value);
+ if (pair) {
+ ret = 0;
+ *data = data_ref (pair->value);
+ }
}
-
+ UNLOCK (&this->lock);
err:
return ret;
}
diff --git a/libglusterfs/src/dict.h b/libglusterfs/src/dict.h
index 93ffa3e8cc7..b1313636092 100644
--- a/libglusterfs/src/dict.h
+++ b/libglusterfs/src/dict.h
@@ -105,6 +105,7 @@ int32_t dict_set (dict_t *this, char *key, data_t *value);
/* function to set a new key/value pair (without checking for duplicate) */
int32_t dict_add (dict_t *this, char *key, data_t *value);
+int dict_get_with_ref (dict_t *this, char *key, data_t **data);
data_t *dict_get (dict_t *this, char *key);
void dict_del (dict_t *this, char *key);
int dict_reset (dict_t *dict);