tier/create: Dynamically allocate gfid memory
Currently we are storing the memory as a static pointer. There is a chance to go that variable in out of scope. So we should allocate in Dynamic way. Change-Id: I096876deb8055ac3a44681599591a0a032bc0c24 BUG: 1290677 Signed-off-by: Mohammed Rafi KC <rkavunga@redhat.com> Reviewed-on: http://review.gluster.org/13102 Tested-by: NetBSD Build System <jenkins@build.gluster.org> Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: N Balachandran <nbalacha@redhat.com> Reviewed-by: Dan Lambright <dlambrig@redhat.com> Tested-by: Dan Lambright <dlambrig@redhat.com>
This commit is contained in:
parent
137b11d616
commit
4b52e6c0d7
@ -135,6 +135,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) {
|
||||
@ -159,9 +160,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"
|
||||
|
Loading…
x
Reference in New Issue
Block a user