diff options
Diffstat (limited to 'libglusterfs/src')
-rw-r--r-- | libglusterfs/src/dict.c | 10 | ||||
-rw-r--r-- | libglusterfs/src/dict.h | 3 |
2 files changed, 10 insertions, 3 deletions
diff --git a/libglusterfs/src/dict.c b/libglusterfs/src/dict.c index 839b42685e8..1aa873e77bd 100644 --- a/libglusterfs/src/dict.c +++ b/libglusterfs/src/dict.c @@ -3018,7 +3018,8 @@ dict_dump_to_statedump (dict_t *dict, char *dict_name, char *domain) } dict_t * -dict_for_key_value (const char *name, const char *value, size_t size) +dict_for_key_value (const char *name, const char *value, size_t size, + gf_boolean_t is_static) { dict_t *xattr = NULL; int ret = 0; @@ -3027,7 +3028,12 @@ dict_for_key_value (const char *name, const char *value, size_t size) if (!xattr) return NULL; - ret = dict_set_static_bin (xattr, (char *)name, (void *)value, size); + if (is_static) + ret = dict_set_static_bin (xattr, (char *)name, (void *)value, + size); + else + ret = dict_set_bin (xattr, (char *)name, (void *)value, size); + if (ret) { dict_destroy (xattr); xattr = NULL; diff --git a/libglusterfs/src/dict.h b/libglusterfs/src/dict.h index bef58e102cc..72198d43d50 100644 --- a/libglusterfs/src/dict.h +++ b/libglusterfs/src/dict.h @@ -254,7 +254,8 @@ gf_boolean_t dict_match_everything (dict_t *d, char *k, data_t *v, void *data); dict_t * -dict_for_key_value (const char *name, const char *value, size_t size); +dict_for_key_value (const char *name, const char *value, size_t size, + gf_boolean_t is_static); gf_boolean_t are_dicts_equal (dict_t *one, dict_t *two, |