summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--xlators/cluster/dht/src/tier-common.c15
1 files changed, 13 insertions, 2 deletions
diff --git a/xlators/cluster/dht/src/tier-common.c b/xlators/cluster/dht/src/tier-common.c
index 845750dfdd6..d8ea95ee579 100644
--- a/xlators/cluster/dht/src/tier-common.c
+++ b/xlators/cluster/dht/src/tier-common.c
@@ -140,6 +140,7 @@ tier_create_linkfile_create_cbk (call_frame_t *frame, void *cookie,
xlator_t *cached_subvol = NULL;
dht_conf_t *conf = NULL;
int ret = -1;
+ unsigned char *gfid = NULL;
local = frame->local;
if (!local) {
@@ -164,9 +165,19 @@ tier_create_linkfile_create_cbk (call_frame_t *frame, void *cookie,
if (local->params) {
dict_del (local->params, conf->link_xattr_name);
dict_del (local->params, GLUSTERFS_INTERNAL_FOP_KEY);
- ret = dict_set_static_bin (local->params, TIER_LINKFILE_GFID,
- stbuf->ia_gfid, 16);
+
+ gfid = GF_CALLOC (1, sizeof (uuid_t), gf_common_mt_char);
+ if (!gfid) {
+ local->op_errno = ENOMEM;
+ op_errno = ENOMEM;
+ goto err;
+ }
+
+ gf_uuid_copy (gfid, stbuf->ia_gfid);
+ ret = dict_set_dynptr (local->params, TIER_LINKFILE_GFID,
+ gfid, sizeof (uuid_t));
if (ret) {
+ GF_FREE (gfid);
gf_msg (this->name, GF_LOG_WARNING, 0,
DHT_MSG_DICT_SET_FAILED,
"Failed to set dictionary value"