diff options
author | Mohammed Rafi KC <rkavunga@redhat.com> | 2015-08-05 19:34:01 +0530 |
---|---|---|
committer | Raghavendra G <rgowdapp@redhat.com> | 2015-08-06 06:01:20 -0700 |
commit | a3faffb259d5288907fac33a2822a8f61c3e86fe (patch) | |
tree | 1657a9d34024d84817aa64d88a230abd9f53c3bd | |
parent | 20a09f52c98c400051dd99d15a3ced59978f42e4 (diff) |
dht/tiering : create new dictionary during migration
To avoid setting wrong xattr during creating link file
Change-Id: Iad8de3521eae17e510035ed42e3e01933d647096
BUG: 1250828
Signed-off-by: Mohammed Rafi KC <rkavunga@redhat.com>
Reviewed-on: http://review.gluster.org/11838
Reviewed-by: N Balachandran <nbalacha@redhat.com>
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Dan Lambright <dlambrig@redhat.com>
Reviewed-by: Raghavendra G <rgowdapp@redhat.com>
-rw-r--r-- | xlators/cluster/dht/src/dht-rebalance.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/xlators/cluster/dht/src/dht-rebalance.c b/xlators/cluster/dht/src/dht-rebalance.c index ec2061cbc4c..53bd9d31ee6 100644 --- a/xlators/cluster/dht/src/dht-rebalance.c +++ b/xlators/cluster/dht/src/dht-rebalance.c @@ -421,7 +421,7 @@ out: static inline int __dht_rebalance_create_dst_file (xlator_t *to, xlator_t *from, loc_t *loc, struct iatt *stbuf, - dict_t *dict, fd_t **dst_fd, dict_t *xattr) + fd_t **dst_fd, dict_t *xattr) { xlator_t *this = NULL; int ret = -1; @@ -429,10 +429,15 @@ __dht_rebalance_create_dst_file (xlator_t *to, xlator_t *from, loc_t *loc, struc struct iatt new_stbuf = {0,}; struct iatt check_stbuf= {0,}; dht_conf_t *conf = NULL; + dict_t *dict = NULL; this = THIS; conf = this->private; + dict = dict_new (); + if (!dict) + goto out; + ret = dict_set_static_bin (dict, "gfid-req", stbuf->ia_gfid, 16); if (ret) { gf_msg (this->name, GF_LOG_ERROR, 0, @@ -563,6 +568,9 @@ __dht_rebalance_create_dst_file (xlator_t *to, xlator_t *from, loc_t *loc, struc ret = 0; out: + if (dict) + dict_unref (dict); + return ret; } @@ -1074,7 +1082,7 @@ dht_migrate_file (xlator_t *this, loc_t *loc, xlator_t *from, xlator_t *to, /* create the destination, with required modes/xattr */ ret = __dht_rebalance_create_dst_file (to, from, loc, &stbuf, - dict, &dst_fd, xattr); + &dst_fd, xattr); if (ret) goto out; |