diff options
| author | Mohammed Rafi KC <rkavunga@redhat.com> | 2015-08-05 19:34:01 +0530 | 
|---|---|---|
| committer | Dan Lambright <dlambrig@redhat.com> | 2015-08-19 23:38:51 -0700 | 
| commit | d776cfb85e00fe0a03e7c13c903f453ff201e73f (patch) | |
| tree | 0783824d3f75469503481f866ca9195faf2525fd | |
| parent | 591d694a713361d2a6a7b59442730e313fb0b7b6 (diff) | |
dht/tiering : create new dictionary during migration
To avoid setting wrong xattr during creating link file
Back port of:
>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>
(cherry picked from commit a3faffb259d5288907fac33a2822a8f61c3e86fe)
Change-Id: I76ef168cd881c8fd828283a1ae70ed251fc44aaa
BUG: 1254438
Signed-off-by: Mohammed Rafi KC <rkavunga@redhat.com>
Reviewed-on: http://review.gluster.org/11945
Reviewed-by: Dan Lambright <dlambrig@redhat.com>
Tested-by: Dan Lambright <dlambrig@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 bf9df40a933..b1514359de7 100644 --- a/xlators/cluster/dht/src/dht-rebalance.c +++ b/xlators/cluster/dht/src/dht-rebalance.c @@ -426,7 +426,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; @@ -434,10 +434,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, @@ -568,6 +573,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;  } @@ -1079,7 +1087,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;  | 
