diff options
| author | Amar Tumballi <amarts@redhat.com> | 2012-03-20 17:22:24 +0530 | 
|---|---|---|
| committer | Anand Avati <avati@redhat.com> | 2012-03-22 16:40:27 -0700 | 
| commit | 9d3af972f516b6ba38d2736ce2016e34a452d569 (patch) | |
| tree | 1dcdc620748a42cdfb5464c3adaae5a4a3a6f869 /xlators/cluster/dht/src/dht-common.c | |
| parent | afe542eca18888463798747d2a95e5a9d239a4a0 (diff) | |
core: adding extra data for fops
with this change, the xlator APIs will have a dictionary as extra
argument, which is passed between all the layers. This can be
utilized for overloading in some of the operations.
Change-Id: I58a8186b3ef647650280e63f3e5e9b9de7827b40
Signed-off-by: Amar Tumballi <amarts@redhat.com>
BUG: 782265
Reviewed-on: http://review.gluster.com/2960
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Anand Avati <avati@redhat.com>
Diffstat (limited to 'xlators/cluster/dht/src/dht-common.c')
| -rw-r--r-- | xlators/cluster/dht/src/dht-common.c | 329 | 
1 files changed, 181 insertions, 148 deletions
diff --git a/xlators/cluster/dht/src/dht-common.c b/xlators/cluster/dht/src/dht-common.c index 059246d972c..f16ecb1b6e3 100644 --- a/xlators/cluster/dht/src/dht-common.c +++ b/xlators/cluster/dht/src/dht-common.c @@ -114,7 +114,7 @@ out:  int  dht_lookup_selfheal_cbk (call_frame_t *frame, void *cookie,                           xlator_t *this, -                         int op_ret, int op_errno) +                         int op_ret, int op_errno, dict_t *xdata)  {          dht_local_t  *local = NULL;          dht_layout_t *layout = NULL; @@ -380,7 +380,8 @@ dht_discover (call_frame_t *frame, xlator_t *this, loc_t *loc)          return 0;  err: -        DHT_STACK_UNWIND (lookup, frame, -1, op_errno, NULL, NULL, NULL, NULL); +        DHT_STACK_UNWIND (lookup, frame, -1, op_errno, NULL, NULL, NULL, +                          NULL);          return 0;  } @@ -673,7 +674,8 @@ dht_lookup_linkfile_create_cbk (call_frame_t *frame, void *cookie,                                  xlator_t *this,                                  int32_t op_ret, int32_t op_errno,                                  inode_t *inode, struct iatt *stbuf, -                                struct iatt *preparent, struct iatt *postparent) +                                struct iatt *preparent, struct iatt *postparent, +                                dict_t *xdata)  {          dht_local_t  *local = NULL;          xlator_t     *cached_subvol = NULL; @@ -836,7 +838,8 @@ dht_lookup_everywhere_done (call_frame_t *frame, xlator_t *this)  int  dht_lookup_unlink_cbk (call_frame_t *frame, void *cookie, xlator_t *this,                         int op_ret, int op_errno, -                       struct iatt *preparent, struct iatt *postparent) +                       struct iatt *preparent, struct iatt *postparent, +                       dict_t *xdata)  {          int  this_call_cnt = 0; @@ -955,7 +958,7 @@ unlock:                                  "deleting stale linkfile %s on %s",                                  loc->path, subvol->name);                          STACK_WIND (frame, dht_lookup_unlink_cbk, -                                    subvol, subvol->fops->unlink, loc); +                                    subvol, subvol->fops->unlink, loc, 0, NULL);                          return 0;                  }          } @@ -1447,7 +1450,8 @@ dht_lookup (call_frame_t *frame, xlator_t *this,  err:          op_errno = (op_errno == -1) ? errno : op_errno; -        DHT_STACK_UNWIND (lookup, frame, -1, op_errno, NULL, NULL, NULL, NULL); +        DHT_STACK_UNWIND (lookup, frame, -1, op_errno, NULL, NULL, NULL, +                          NULL);          return 0;  } @@ -1455,7 +1459,7 @@ err:  int  dht_unlink_cbk (call_frame_t *frame, void *cookie, xlator_t *this,                  int op_ret, int op_errno, struct iatt *preparent, -                struct iatt *postparent) +                struct iatt *postparent, dict_t *xdata)  {          dht_local_t  *local = NULL;          call_frame_t *prev  = NULL; @@ -1486,7 +1490,7 @@ unlock:          UNLOCK (&frame->lock);          DHT_STACK_UNWIND (unlink, frame, local->op_ret, local->op_errno, -                          &local->preparent, &local->postparent); +                          &local->preparent, &local->postparent, NULL);          return 0;  } @@ -1495,7 +1499,7 @@ unlock:  int  dht_unlink_linkfile_cbk (call_frame_t *frame, void *cookie, xlator_t *this,                           int op_ret, int op_errno, struct iatt *preparent, -                         struct iatt *postparent) +                         struct iatt *postparent, dict_t *xdata)  {          dht_local_t  *local = NULL;          call_frame_t *prev = NULL; @@ -1534,19 +1538,19 @@ unlock:          STACK_WIND (frame, dht_unlink_cbk,                      cached_subvol, cached_subvol->fops->unlink, -                    &local->loc); +                    &local->loc, local->flags, NULL);          return 0;  err:          DHT_STACK_UNWIND (unlink, frame, -1, local->op_errno, -                          NULL, NULL); +                          NULL, NULL, NULL);          return 0;  }  static int  dht_ufo_xattr_cbk (call_frame_t *frame, void *cookie, xlator_t *this, -                   int op_ret, int op_errno) +                   int op_ret, int op_errno, dict_t *xdata)  {          dht_local_t  *local = NULL;          int           this_call_cnt = 0; @@ -1571,7 +1575,8 @@ unlock:          this_call_cnt = dht_frame_return (frame);          if (is_last_call (this_call_cnt)) { -                DHT_STACK_UNWIND (setxattr, frame, local->op_ret, local->op_errno); +                DHT_STACK_UNWIND (setxattr, frame, local->op_ret, +                                  local->op_errno, NULL);          }          return 0; @@ -1580,7 +1585,7 @@ unlock:  int  dht_err_cbk (call_frame_t *frame, void *cookie, xlator_t *this, -             int op_ret, int op_errno) +             int op_ret, int op_errno, dict_t *xdata)  {          dht_local_t  *local = NULL;          int           this_call_cnt = 0; @@ -1606,7 +1611,8 @@ unlock:          this_call_cnt = dht_frame_return (frame);          if (is_last_call (this_call_cnt)) { -                DHT_STACK_UNWIND (setxattr, frame, local->op_ret, local->op_errno); +                DHT_STACK_UNWIND (setxattr, frame, local->op_ret, +                                  local->op_errno, NULL);          }          return 0; @@ -1650,7 +1656,7 @@ dht_fill_pathinfo_xattr (xlator_t *this, dht_local_t *local,  int  dht_vgetxattr_cbk (call_frame_t *frame, void *cookie, xlator_t *this, -                           int op_ret, int op_errno, dict_t *xattr) +                   int op_ret, int op_errno, dict_t *xattr, dict_t *xdata)  {          dht_local_t *local         = NULL;          int          ret           = 0; @@ -1734,7 +1740,8 @@ dht_vgetxattr_cbk (call_frame_t *frame, void *cookie, xlator_t *this,                  if (local->xattr_val)                          GF_FREE (local->xattr_val); -                DHT_STACK_UNWIND (getxattr, frame, op_ret, op_errno, dict); +                DHT_STACK_UNWIND (getxattr, frame, op_ret, op_errno, dict, +                                  xdata);                  if (dict)                          dict_unref (dict); @@ -1753,7 +1760,7 @@ dht_vgetxattr_cbk (call_frame_t *frame, void *cookie, xlator_t *this,                  /* This will happen if there pending */                  STACK_WIND (frame, dht_vgetxattr_cbk, local->hashed_subvol,                              local->hashed_subvol->fops->getxattr, -                            &local->loc, local->key); +                            &local->loc, local->key, NULL);                  return 0;          } @@ -1761,13 +1768,14 @@ dht_vgetxattr_cbk (call_frame_t *frame, void *cookie, xlator_t *this,          gf_log ("this->name", GF_LOG_ERROR, "Unable to find hashed_subvol"                  " for path %s", local->xattr_val); -        DHT_STACK_UNWIND (getxattr, frame, -1, op_errno, dict); +        DHT_STACK_UNWIND (getxattr, frame, -1, op_errno, dict, xdata);          return 0;  }  int  dht_linkinfo_getxattr_cbk (call_frame_t *frame, void *cookie, xlator_t *this, -                           int op_ret, int op_errno, dict_t *xattr) +                           int op_ret, int op_errno, dict_t *xattr, +                           dict_t *xdata)  {          int   ret   = 0;          char *value = NULL; @@ -1782,14 +1790,14 @@ dht_linkinfo_getxattr_cbk (call_frame_t *frame, void *cookie, xlator_t *this,                  }          } -        DHT_STACK_UNWIND (getxattr, frame, op_ret, op_errno, xattr); +        DHT_STACK_UNWIND (getxattr, frame, op_ret, op_errno, xattr, xdata);          return 0;  }  int  dht_getxattr_cbk (call_frame_t *frame, void *cookie, xlator_t *this, -                  int op_ret, int op_errno, dict_t *xattr) +                  int op_ret, int op_errno, dict_t *xattr, dict_t *xdata)  {          int             this_call_cnt = 0;          dht_local_t     *local = NULL; @@ -1822,23 +1830,24 @@ dht_getxattr_cbk (call_frame_t *frame, void *cookie, xlator_t *this,          }  out:          if (is_last_call (this_call_cnt)) { -                DHT_STACK_UNWIND (getxattr, frame, local->op_ret, op_errno, local->xattr); +                DHT_STACK_UNWIND (getxattr, frame, local->op_ret, op_errno, +                                  local->xattr, NULL);          }          return 0;  }  int32_t  dht_getxattr_unwind (call_frame_t *frame, -                     int op_ret, int op_errno, dict_t *dict) +                     int op_ret, int op_errno, dict_t *dict, dict_t *xdata)  { -        DHT_STACK_UNWIND (getxattr, frame, op_ret, op_errno, dict); +        DHT_STACK_UNWIND (getxattr, frame, op_ret, op_errno, dict, xdata);          return 0;  }  int  dht_getxattr (call_frame_t *frame, xlator_t *this, -              loc_t *loc, const char *key) +              loc_t *loc, const char *key, dict_t *xdata)  {          xlator_t     *subvol        = NULL;          xlator_t     *hashed_subvol = NULL; @@ -1890,7 +1899,7 @@ dht_getxattr (call_frame_t *frame, xlator_t *this,                  local->call_cnt = 1;                  STACK_WIND (frame, dht_vgetxattr_cbk, cached_subvol, -                            cached_subvol->fops->getxattr, loc, key); +                            cached_subvol->fops->getxattr, loc, key, NULL);                  return 0;          } @@ -1918,7 +1927,7 @@ dht_getxattr (call_frame_t *frame, xlator_t *this,                  if (hashed_subvol) {                          STACK_WIND (frame, dht_linkinfo_getxattr_cbk, hashed_subvol,                                      hashed_subvol->fops->getxattr, loc, -                                    GF_XATTR_PATHINFO_KEY); +                                    GF_XATTR_PATHINFO_KEY, NULL);                          return 0;                  }                  op_errno = ENODATA; @@ -1983,20 +1992,20 @@ dht_getxattr (call_frame_t *frame, xlator_t *this,                  subvol = layout->list[i].xlator;                  STACK_WIND (frame, dht_getxattr_cbk,                              subvol, subvol->fops->getxattr, -                            loc, key); +                            loc, key, NULL);          }          return 0;  err:          op_errno = (op_errno == -1) ? errno : op_errno; -        DHT_STACK_UNWIND (getxattr, frame, -1, op_errno, NULL); +        DHT_STACK_UNWIND (getxattr, frame, -1, op_errno, NULL, NULL);          return 0;  }  int  dht_fgetxattr (call_frame_t *frame, xlator_t *this, -               fd_t *fd, const char *key) +               fd_t *fd, const char *key, dict_t *xdata)  {          xlator_t     *subvol        = NULL;          dht_local_t  *local         = NULL; @@ -2044,20 +2053,20 @@ dht_fgetxattr (call_frame_t *frame, xlator_t *this,                  subvol = layout->list[i].xlator;                  STACK_WIND (frame, dht_getxattr_cbk,                              subvol, subvol->fops->fgetxattr, -                            fd, key); +                            fd, key, NULL);          }          return 0;  err:          op_errno = (op_errno == -1) ? errno : op_errno; -        DHT_STACK_UNWIND (fgetxattr, frame, -1, op_errno, NULL); +        DHT_STACK_UNWIND (fgetxattr, frame, -1, op_errno, NULL, NULL);          return 0;  }  int  dht_fsetxattr (call_frame_t *frame, xlator_t *this, -               fd_t *fd, dict_t *xattr, int flags) +               fd_t *fd, dict_t *xattr, int flags, dict_t *xdata)  {          xlator_t     *subvol   = NULL;          dht_local_t  *local    = NULL; @@ -2089,13 +2098,13 @@ dht_fsetxattr (call_frame_t *frame, xlator_t *this,          local->call_cnt = 1;          STACK_WIND (frame, dht_err_cbk, subvol, subvol->fops->fsetxattr, -                    fd, xattr, flags); +                    fd, xattr, flags, NULL);          return 0;  err:          op_errno = (op_errno == -1) ? errno : op_errno; -        DHT_STACK_UNWIND (fsetxattr, frame, -1, op_errno); +        DHT_STACK_UNWIND (fsetxattr, frame, -1, op_errno, NULL);          return 0;  } @@ -2103,16 +2112,18 @@ err:  static int  dht_common_setxattr_cbk (call_frame_t *frame, void *cookie, -                         xlator_t *this, int32_t op_ret, int32_t op_errno) +                         xlator_t *this, int32_t op_ret, int32_t op_errno, +                         dict_t *xdata)  { -        DHT_STACK_UNWIND (setxattr, frame, op_ret, op_errno); +        DHT_STACK_UNWIND (setxattr, frame, op_ret, op_errno, xdata);          return 0;  }  int  dht_checking_pathinfo_cbk (call_frame_t *frame, void *cookie, xlator_t *this, -                           int op_ret, int op_errno, dict_t *xattr) +                           int op_ret, int op_errno, dict_t *xattr, +                           dict_t *xdata)  {          int           i     = -1;          int           ret   = -1; @@ -2144,7 +2155,7 @@ dht_checking_pathinfo_cbk (call_frame_t *frame, void *cookie, xlator_t *this,  out:          this_call_cnt = dht_frame_return (frame);          if (is_last_call (this_call_cnt)) { -                DHT_STACK_UNWIND (setxattr, frame, local->op_ret, ENOTSUP); +                DHT_STACK_UNWIND (setxattr, frame, local->op_ret, ENOTSUP, NULL);          }          return 0; @@ -2152,7 +2163,7 @@ out:  int  dht_setxattr (call_frame_t *frame, xlator_t *this, -              loc_t *loc, dict_t *xattr, int flags) +              loc_t *loc, dict_t *xattr, int flags, dict_t *xdata)  {          xlator_t     *subvol   = NULL;          dht_local_t  *local    = NULL; @@ -2217,7 +2228,7 @@ dht_setxattr (call_frame_t *frame, xlator_t *this,                          STACK_WIND (frame, dht_ufo_xattr_cbk,                                      layout->list[i].xlator,                                      layout->list[i].xlator->fops->setxattr, -                                    loc, xattr, flags); +                                    loc, xattr, flags, NULL);                  }                  return 0;          } @@ -2286,7 +2297,7 @@ dht_setxattr (call_frame_t *frame, xlator_t *this,                          STACK_WIND (frame, dht_checking_pathinfo_cbk,                                      conf->subvolumes[i],                                      conf->subvolumes[i]->fops->getxattr, -                                    loc, GF_XATTR_PATHINFO_KEY); +                                    loc, GF_XATTR_PATHINFO_KEY, NULL);                  }                  return 0;          } @@ -2325,14 +2336,14 @@ dht_setxattr (call_frame_t *frame, xlator_t *this,                  STACK_WIND (frame, dht_err_cbk,                              layout->list[i].xlator,                              layout->list[i].xlator->fops->setxattr, -                            loc, xattr, flags); +                            loc, xattr, flags, xdata);          }          return 0;  err:          op_errno = (op_errno == -1) ? errno : op_errno; -        DHT_STACK_UNWIND (setxattr, frame, -1, op_errno); +        DHT_STACK_UNWIND (setxattr, frame, -1, op_errno, NULL);          return 0;  } @@ -2340,7 +2351,7 @@ err:  int  dht_removexattr_cbk (call_frame_t *frame, void *cookie, xlator_t *this, -                     int op_ret, int op_errno) +                     int op_ret, int op_errno, dict_t *xdata)  {          dht_local_t  *local = NULL;          int           this_call_cnt = 0; @@ -2366,7 +2377,8 @@ unlock:          this_call_cnt = dht_frame_return (frame);          if (is_last_call (this_call_cnt)) { -                DHT_STACK_UNWIND (removexattr, frame, local->op_ret, local->op_errno); +                DHT_STACK_UNWIND (removexattr, frame, local->op_ret, +                                  local->op_errno, NULL);          }          return 0; @@ -2375,7 +2387,7 @@ unlock:  int  dht_removexattr (call_frame_t *frame, xlator_t *this, -                 loc_t *loc, const char *key) +                 loc_t *loc, const char *key, dict_t *xdata)  {          xlator_t     *subvol = NULL;          int           op_errno = -1; @@ -2424,21 +2436,21 @@ dht_removexattr (call_frame_t *frame, xlator_t *this,                  STACK_WIND (frame, dht_removexattr_cbk,                              layout->list[i].xlator,                              layout->list[i].xlator->fops->removexattr, -                            loc, key); +                            loc, key, NULL);          }          return 0;  err:          op_errno = (op_errno == -1) ? errno : op_errno; -        DHT_STACK_UNWIND (removexattr, frame, -1, op_errno); +        DHT_STACK_UNWIND (removexattr, frame, -1, op_errno, NULL);          return 0;  }  int  dht_fremovexattr (call_frame_t *frame, xlator_t *this, -                  fd_t *fd, const char *key) +                  fd_t *fd, const char *key, dict_t *xdata)  {          xlator_t     *subvol = NULL;          int           op_errno = -1; @@ -2485,14 +2497,14 @@ dht_fremovexattr (call_frame_t *frame, xlator_t *this,                  STACK_WIND (frame, dht_removexattr_cbk,                              layout->list[i].xlator,                              layout->list[i].xlator->fops->fremovexattr, -                            fd, key); +                            fd, key, NULL);          }          return 0;  err:          op_errno = (op_errno == -1) ? errno : op_errno; -        DHT_STACK_UNWIND (fremovexattr, frame, -1, op_errno); +        DHT_STACK_UNWIND (fremovexattr, frame, -1, op_errno, NULL);          return 0;  } @@ -2500,7 +2512,7 @@ err:  int  dht_fd_cbk (call_frame_t *frame, void *cookie, xlator_t *this, -            int op_ret, int op_errno, fd_t *fd) +            int op_ret, int op_errno, fd_t *fd, dict_t *xdata)  {          dht_local_t  *local = NULL;          int           this_call_cnt = 0; @@ -2527,7 +2539,7 @@ unlock:          this_call_cnt = dht_frame_return (frame);          if (is_last_call (this_call_cnt))                  DHT_STACK_UNWIND (open, frame, local->op_ret, local->op_errno, -                                  local->fd); +                                  local->fd, NULL);          return 0;  } @@ -2557,7 +2569,7 @@ dht_normalize_stats (struct statvfs *buf, unsigned long bsize,  int  dht_statfs_cbk (call_frame_t *frame, void *cookie, xlator_t *this, -                int op_ret, int op_errno, struct statvfs *statvfs) +                int op_ret, int op_errno, struct statvfs *statvfs, dict_t *xdata)  {          dht_local_t *local         = NULL;          int          this_call_cnt = 0; @@ -2603,14 +2615,14 @@ unlock:          this_call_cnt = dht_frame_return (frame);          if (is_last_call (this_call_cnt))                  DHT_STACK_UNWIND (statfs, frame, local->op_ret, local->op_errno, -                                  &local->statvfs); +                                  &local->statvfs, xdata);          return 0;  }  int -dht_statfs (call_frame_t *frame, xlator_t *this, loc_t *loc) +dht_statfs (call_frame_t *frame, xlator_t *this, loc_t *loc, dict_t *xdata)  {          xlator_t     *subvol = NULL;          dht_local_t  *local  = NULL; @@ -2639,7 +2651,8 @@ dht_statfs (call_frame_t *frame, xlator_t *this, loc_t *loc)                  for (i = 0; i < conf->subvolume_cnt; i++) {                          STACK_WIND (frame, dht_statfs_cbk,                                      conf->subvolumes[i], -                                    conf->subvolumes[i]->fops->statfs, loc); +                                    conf->subvolumes[i]->fops->statfs, loc, +                                    xdata);                  }                  return 0;          } @@ -2655,20 +2668,21 @@ dht_statfs (call_frame_t *frame, xlator_t *this, loc_t *loc)          local->call_cnt = 1;          STACK_WIND (frame, dht_statfs_cbk, -                    subvol, subvol->fops->statfs, loc); +                    subvol, subvol->fops->statfs, loc, xdata);          return 0;  err:          op_errno = (op_errno == -1) ? errno : op_errno; -        DHT_STACK_UNWIND (statfs, frame, -1, op_errno, NULL); +        DHT_STACK_UNWIND (statfs, frame, -1, op_errno, NULL, NULL);          return 0;  }  int -dht_opendir (call_frame_t *frame, xlator_t *this, loc_t *loc, fd_t *fd) +dht_opendir (call_frame_t *frame, xlator_t *this, loc_t *loc, fd_t *fd, +             dict_t *xdata)  {          dht_local_t  *local  = NULL;          dht_conf_t   *conf = NULL; @@ -2695,14 +2709,14 @@ dht_opendir (call_frame_t *frame, xlator_t *this, loc_t *loc, fd_t *fd)                  STACK_WIND (frame, dht_fd_cbk,                              conf->subvolumes[i],                              conf->subvolumes[i]->fops->opendir, -                            loc, fd); +                            loc, fd, xdata);          }          return 0;  err:          op_errno = (op_errno == -1) ? errno : op_errno; -        DHT_STACK_UNWIND (opendir, frame, -1, op_errno, NULL); +        DHT_STACK_UNWIND (opendir, frame, -1, op_errno, NULL, NULL);          return 0;  } @@ -2710,7 +2724,7 @@ err:  int  dht_readdirp_cbk (call_frame_t *frame, void *cookie, xlator_t *this, int op_ret, -                  int op_errno, gf_dirent_t *orig_entries) +                  int op_errno, gf_dirent_t *orig_entries, dict_t *xdata)  {          dht_local_t  *local = NULL;          gf_dirent_t   entries; @@ -2811,7 +2825,7 @@ unwind:          if (op_ret < 0)                  op_ret = 0; -        DHT_STACK_UNWIND (readdirp, frame, op_ret, op_errno, &entries); +        DHT_STACK_UNWIND (readdirp, frame, op_ret, op_errno, &entries, NULL);          gf_dirent_free (&entries); @@ -2822,7 +2836,8 @@ unwind:  int  dht_readdir_cbk (call_frame_t *frame, void *cookie, xlator_t *this, -                 int op_ret, int op_errno, gf_dirent_t *orig_entries) +                 int op_ret, int op_errno, gf_dirent_t *orig_entries, +                 dict_t *xdata)  {          dht_local_t  *local = NULL;          gf_dirent_t   entries; @@ -2899,7 +2914,7 @@ done:                  STACK_WIND (frame, dht_readdir_cbk,                              next_subvol, next_subvol->fops->readdir, -                            local->fd, local->size, next_offset); +                            local->fd, local->size, next_offset, NULL);                  return 0;          } @@ -2907,7 +2922,7 @@ unwind:          if (op_ret < 0)                  op_ret = 0; -        DHT_STACK_UNWIND (readdir, frame, op_ret, op_errno, &entries); +        DHT_STACK_UNWIND (readdir, frame, op_ret, op_errno, &entries, NULL);          gf_dirent_free (&entries); @@ -2962,14 +2977,14 @@ dht_do_readdir (call_frame_t *frame, xlator_t *this, fd_t *fd, size_t size,                              fd, size, xoff, local->xattr);          } else {                  STACK_WIND (frame, dht_readdir_cbk, xvol, xvol->fops->readdir, -                            fd, size, xoff); +                            fd, size, xoff, local->xattr);          }          return 0;  err:          op_errno = (op_errno == -1) ? errno : op_errno; -        DHT_STACK_UNWIND (readdir, frame, -1, op_errno, NULL); +        DHT_STACK_UNWIND (readdir, frame, -1, op_errno, NULL, NULL);          return 0;  } @@ -2977,7 +2992,7 @@ err:  int  dht_readdir (call_frame_t *frame, xlator_t *this, fd_t *fd, size_t size, -             off_t yoff) +             off_t yoff, dict_t *xdata)  {          int          op = GF_FOP_READDIR;          dht_conf_t  *conf = NULL; @@ -3014,7 +3029,7 @@ dht_readdirp (call_frame_t *frame, xlator_t *this, fd_t *fd, size_t size,  int  dht_fsyncdir_cbk (call_frame_t *frame, void *cookie, xlator_t *this, -                  int op_ret, int op_errno) +                  int op_ret, int op_errno, dict_t *xdata)  {          dht_local_t  *local = NULL;          int           this_call_cnt = 0; @@ -3034,14 +3049,16 @@ dht_fsyncdir_cbk (call_frame_t *frame, void *cookie, xlator_t *this,          this_call_cnt = dht_frame_return (frame);          if (is_last_call (this_call_cnt)) -                DHT_STACK_UNWIND (fsyncdir, frame, local->op_ret, local->op_errno); +                DHT_STACK_UNWIND (fsyncdir, frame, local->op_ret, +                                  local->op_errno, xdata);          return 0;  }  int -dht_fsyncdir (call_frame_t *frame, xlator_t *this, fd_t *fd, int datasync) +dht_fsyncdir (call_frame_t *frame, xlator_t *this, fd_t *fd, +              int datasync, dict_t *xdata)  {          dht_local_t  *local  = NULL;          dht_conf_t   *conf = NULL; @@ -3068,14 +3085,14 @@ dht_fsyncdir (call_frame_t *frame, xlator_t *this, fd_t *fd, int datasync)                  STACK_WIND (frame, dht_fsyncdir_cbk,                              conf->subvolumes[i],                              conf->subvolumes[i]->fops->fsyncdir, -                            fd, datasync); +                            fd, datasync, xdata);          }          return 0;  err:          op_errno = (op_errno == -1) ? errno : op_errno; -        DHT_STACK_UNWIND (fsyncdir, frame, -1, op_errno); +        DHT_STACK_UNWIND (fsyncdir, frame, -1, op_errno, NULL);          return 0;  } @@ -3085,7 +3102,7 @@ int  dht_newfile_cbk (call_frame_t *frame, void *cookie, xlator_t *this,                   int op_ret, int op_errno,                   inode_t *inode, struct iatt *stbuf, struct iatt *preparent, -                 struct iatt *postparent) +                 struct iatt *postparent, dict_t *xdata)  {          call_frame_t *prev = NULL;          int           ret = -1; @@ -3128,8 +3145,8 @@ out:           */          DHT_STRIP_PHASE1_FLAGS (stbuf); -        DHT_STACK_UNWIND (mknod, frame, op_ret, op_errno, inode, stbuf, preparent, -                          postparent); +        DHT_STACK_UNWIND (mknod, frame, op_ret, op_errno, inode, stbuf, +                          preparent, postparent, xdata);          return 0;  } @@ -3138,7 +3155,8 @@ dht_mknod_linkfile_create_cbk (call_frame_t *frame, void *cookie,                                 xlator_t *this,                                 int32_t op_ret, int32_t op_errno,                                 inode_t *inode, struct iatt *stbuf, -                               struct iatt *preparent, struct iatt *postparent) +                               struct iatt *preparent, struct iatt *postparent, +                               dict_t *xdata)  {          dht_local_t  *local = NULL;          xlator_t     *cached_subvol = NULL; @@ -3151,18 +3169,19 @@ dht_mknod_linkfile_create_cbk (call_frame_t *frame, void *cookie,          STACK_WIND (frame, dht_newfile_cbk,                      cached_subvol, cached_subvol->fops->mknod, -                    &local->loc, local->mode, local->rdev, +                    &local->loc, local->mode, local->rdev, local->umask,                      local->params);          return 0;  err: -        DHT_STACK_UNWIND (mknod, frame, -1, op_errno, NULL, NULL, NULL, NULL); +        DHT_STACK_UNWIND (mknod, frame, -1, op_errno, NULL, NULL, NULL, NULL, +                          NULL);          return 0;  }  int  dht_mknod (call_frame_t *frame, xlator_t *this, -           loc_t *loc, mode_t mode, dev_t rdev, dict_t *params) +           loc_t *loc, mode_t mode, dev_t rdev, mode_t umask, dict_t *params)  {          xlator_t    *subvol = NULL;          int          op_errno = -1; @@ -3196,7 +3215,7 @@ dht_mknod (call_frame_t *frame, xlator_t *this,                  STACK_WIND (frame, dht_newfile_cbk,                              subvol, subvol->fops->mknod, -                            loc, mode, rdev, params); +                            loc, mode, rdev, umask, params);          } else {                  avail_subvol = dht_free_disk_available_subvol (this, subvol);                  if (avail_subvol != subvol) { @@ -3207,7 +3226,7 @@ dht_mknod (call_frame_t *frame, xlator_t *this,                          local->cached_subvol = avail_subvol;                          local->mode = mode;                          local->rdev = rdev; - +                        local->umask = umask;                          dht_linkfile_create (frame,                                               dht_mknod_linkfile_create_cbk,                                               avail_subvol, subvol, loc); @@ -3217,7 +3236,7 @@ dht_mknod (call_frame_t *frame, xlator_t *this,                          STACK_WIND (frame, dht_newfile_cbk,                                      subvol, subvol->fops->mknod, -                                    loc, mode, rdev, params); +                                    loc, mode, rdev, umask, params);                  }          } @@ -3226,7 +3245,7 @@ dht_mknod (call_frame_t *frame, xlator_t *this,  err:          op_errno = (op_errno == -1) ? errno : op_errno;          DHT_STACK_UNWIND (mknod, frame, -1, op_errno, -                          NULL, NULL, NULL, NULL); +                          NULL, NULL, NULL, NULL, NULL);          return 0;  } @@ -3234,7 +3253,7 @@ err:  int  dht_symlink (call_frame_t *frame, xlator_t *this, -             const char *linkname, loc_t *loc, dict_t *params) +             const char *linkname, loc_t *loc, mode_t umask, dict_t *params)  {          xlator_t    *subvol = NULL;          int          op_errno = -1; @@ -3264,21 +3283,22 @@ dht_symlink (call_frame_t *frame, xlator_t *this,          STACK_WIND (frame, dht_newfile_cbk,                      subvol, subvol->fops->symlink, -                    linkname, loc, params); +                    linkname, loc, umask, params);          return 0;  err:          op_errno = (op_errno == -1) ? errno : op_errno;          DHT_STACK_UNWIND (link, frame, -1, op_errno, -                          NULL, NULL, NULL, NULL); +                          NULL, NULL, NULL, NULL, NULL);          return 0;  }  int -dht_unlink (call_frame_t *frame, xlator_t *this, loc_t *loc) +dht_unlink (call_frame_t *frame, xlator_t *this, loc_t *loc, int xflag, +            dict_t *xdata)  {          xlator_t    *cached_subvol = NULL;          xlator_t    *hashed_subvol = NULL; @@ -3296,7 +3316,7 @@ dht_unlink (call_frame_t *frame, xlator_t *this, loc_t *loc)                          local->loc.path, cached_subvol->name, loc->path);                  STACK_WIND (frame, dht_unlink_cbk,                              cached_subvol, cached_subvol->fops->unlink, -                            &local->loc); +                            &local->loc, xflag, xdata);                  goto done;          } @@ -3324,18 +3344,21 @@ dht_unlink (call_frame_t *frame, xlator_t *this, loc_t *loc)                  goto err;          } +        local->flags = xflag;          if (hashed_subvol != cached_subvol) {                  STACK_WIND (frame, dht_unlink_linkfile_cbk, -                            hashed_subvol, hashed_subvol->fops->unlink, loc); +                            hashed_subvol, hashed_subvol->fops->unlink, loc, +                            xflag, xdata);          } else {                  STACK_WIND (frame, dht_unlink_cbk, -                            cached_subvol, cached_subvol->fops->unlink, loc); +                            cached_subvol, cached_subvol->fops->unlink, loc, +                            xflag, xdata);          }  done:          return 0;  err:          op_errno = (op_errno == -1) ? errno : op_errno; -        DHT_STACK_UNWIND (unlink, frame, -1, op_errno, NULL, NULL); +        DHT_STACK_UNWIND (unlink, frame, -1, op_errno, NULL, NULL, NULL);          return 0;  } @@ -3345,7 +3368,7 @@ int  dht_link_cbk (call_frame_t *frame, void *cookie, xlator_t *this,                int op_ret, int op_errno,                inode_t *inode, struct iatt *stbuf, struct iatt *preparent, -              struct iatt *postparent) +              struct iatt *postparent, dict_t *xdata)  {          call_frame_t *prev = NULL;          dht_layout_t *layout = NULL; @@ -3371,7 +3394,7 @@ dht_link_cbk (call_frame_t *frame, void *cookie, xlator_t *this,  out:          DHT_STRIP_PHASE1_FLAGS (stbuf);          DHT_STACK_UNWIND (link, frame, op_ret, op_errno, inode, stbuf, preparent, -                          postparent); +                          postparent, NULL);          return 0;  } @@ -3381,7 +3404,8 @@ int  dht_link_linkfile_cbk (call_frame_t *frame, void *cookie, xlator_t *this,                         int op_ret, int op_errno,                         inode_t *inode, struct iatt *stbuf, -                       struct iatt *preparent, struct iatt *postparent) +                       struct iatt *preparent, struct iatt *postparent, +                       dict_t *xdata)  {          dht_local_t  *local = NULL;          xlator_t     *srcvol = NULL; @@ -3393,14 +3417,14 @@ dht_link_linkfile_cbk (call_frame_t *frame, void *cookie, xlator_t *this,          srcvol = local->linkfile.srcvol;          STACK_WIND (frame, dht_link_cbk, srcvol, srcvol->fops->link, -                    &local->loc, &local->loc2); +                    &local->loc, &local->loc2, xdata);          return 0;  err:          DHT_STRIP_PHASE1_FLAGS (stbuf);          DHT_STACK_UNWIND (link, frame, op_ret, op_errno, inode, stbuf, preparent, -                          postparent); +                          postparent, NULL);          return 0;  } @@ -3408,7 +3432,7 @@ err:  int  dht_link (call_frame_t *frame, xlator_t *this, -          loc_t *oldloc, loc_t *newloc) +          loc_t *oldloc, loc_t *newloc, dict_t *xdata)  {          xlator_t    *cached_subvol = NULL;          xlator_t    *hashed_subvol = NULL; @@ -3458,14 +3482,14 @@ dht_link (call_frame_t *frame, xlator_t *this,          } else {                  STACK_WIND (frame, dht_link_cbk,                              cached_subvol, cached_subvol->fops->link, -                            oldloc, newloc); +                            oldloc, newloc, xdata);          }          return 0;  err:          op_errno = (op_errno == -1) ? errno : op_errno; -        DHT_STACK_UNWIND (link, frame, -1, op_errno, NULL, NULL, NULL, NULL); +        DHT_STACK_UNWIND (link, frame, -1, op_errno, NULL, NULL, NULL, NULL, NULL);          return 0;  } @@ -3475,7 +3499,7 @@ int  dht_create_cbk (call_frame_t *frame, void *cookie, xlator_t *this,                  int op_ret, int op_errno,                  fd_t *fd, inode_t *inode, struct iatt *stbuf, -                struct iatt *preparent, struct iatt *postparent) +                struct iatt *preparent, struct iatt *postparent, dict_t *xdata)  {          call_frame_t *prev = NULL;          int           ret = -1; @@ -3511,7 +3535,7 @@ dht_create_cbk (call_frame_t *frame, void *cookie, xlator_t *this,  out:          DHT_STRIP_PHASE1_FLAGS (stbuf);          DHT_STACK_UNWIND (create, frame, op_ret, op_errno, fd, inode, stbuf, preparent, -                          postparent); +                          postparent, NULL);          return 0;  } @@ -3521,7 +3545,8 @@ dht_create_linkfile_create_cbk (call_frame_t *frame, void *cookie,                                  xlator_t *this,                                  int32_t op_ret, int32_t op_errno,                                  inode_t *inode, struct iatt *stbuf, -                                struct iatt *preparent, struct iatt *postparent) +                                struct iatt *preparent, struct iatt *postparent, +                                dict_t *xdata)  {          dht_local_t  *local = NULL;          xlator_t     *cached_subvol = NULL; @@ -3535,18 +3560,19 @@ dht_create_linkfile_create_cbk (call_frame_t *frame, void *cookie,          STACK_WIND (frame, dht_create_cbk,                      cached_subvol, cached_subvol->fops->create,                      &local->loc, local->flags, local->mode, -                    local->fd, local->params); +                    local->umask, local->fd, local->params);          return 0;  err: -        DHT_STACK_UNWIND (create, frame, -1, op_errno, NULL, NULL, NULL, NULL, NULL); +        DHT_STACK_UNWIND (create, frame, -1, op_errno, NULL, NULL, NULL, +                          NULL, NULL, NULL);          return 0;  }  int  dht_create (call_frame_t *frame, xlator_t *this,              loc_t *loc, int32_t flags, mode_t mode, -            fd_t *fd, dict_t *params) +            mode_t umask, fd_t *fd, dict_t *params)  {          int          op_errno = -1;          xlator_t    *subvol = NULL; @@ -3572,7 +3598,7 @@ dht_create (call_frame_t *frame, xlator_t *this,                          local->loc.path, subvol->name, loc->path);                  STACK_WIND (frame, dht_create_cbk,                              subvol, subvol->fops->create, -                            &local->loc, flags, mode, fd, params); +                            &local->loc, flags, mode, umask, fd, params);                  goto done;          } @@ -3590,7 +3616,7 @@ dht_create (call_frame_t *frame, xlator_t *this,                          "creating %s on %s", loc->path, subvol->name);                  STACK_WIND (frame, dht_create_cbk,                              subvol, subvol->fops->create, -                            loc, flags, mode, fd, params); +                            loc, flags, mode, umask, fd, params);                  goto done;          }          /* Choose the minimum filled volume, and create the @@ -3600,7 +3626,7 @@ dht_create (call_frame_t *frame, xlator_t *this,                  local->params = dict_ref (params);                  local->flags = flags;                  local->mode = mode; - +                local->umask = umask;                  local->cached_subvol = avail_subvol;                  local->hashed_subvol = subvol;                  gf_log (this->name, GF_LOG_TRACE, @@ -3615,13 +3641,14 @@ dht_create (call_frame_t *frame, xlator_t *this,                  "creating %s on %s", loc->path, subvol->name);          STACK_WIND (frame, dht_create_cbk,                      subvol, subvol->fops->create, -                    loc, flags, mode, fd, params); +                    loc, flags, mode, umask, fd, params);  done:          return 0;  err:          op_errno = (op_errno == -1) ? errno : op_errno; -        DHT_STACK_UNWIND (create, frame, -1, op_errno, NULL, NULL, NULL, NULL, NULL); +        DHT_STACK_UNWIND (create, frame, -1, op_errno, NULL, NULL, NULL, +                          NULL, NULL, NULL);          return 0;  } @@ -3630,7 +3657,7 @@ err:  int  dht_mkdir_selfheal_cbk (call_frame_t *frame, void *cookie,                          xlator_t *this, -                        int32_t op_ret, int32_t op_errno) +                        int32_t op_ret, int32_t op_errno, dict_t *xdata)  {          dht_local_t   *local = NULL;          dht_layout_t  *layout = NULL; @@ -3648,7 +3675,7 @@ dht_mkdir_selfheal_cbk (call_frame_t *frame, void *cookie,          DHT_STACK_UNWIND (mkdir, frame, op_ret, op_errno,                            local->inode, &local->stbuf, &local->preparent, -                          &local->postparent); +                          &local->postparent, NULL);          return 0;  } @@ -3656,7 +3683,7 @@ dht_mkdir_selfheal_cbk (call_frame_t *frame, void *cookie,  int  dht_mkdir_cbk (call_frame_t *frame, void *cookie, xlator_t *this,                 int op_ret, int op_errno, inode_t *inode, struct iatt *stbuf, -               struct iatt *preparent, struct iatt *postparent) +               struct iatt *preparent, struct iatt *postparent, dict_t *xdata)  {          dht_local_t  *local = NULL;          int           this_call_cnt = 0; @@ -3709,7 +3736,8 @@ int  dht_mkdir_hashed_cbk (call_frame_t *frame, void *cookie,                        xlator_t *this, int op_ret, int op_errno,                        inode_t *inode, struct iatt *stbuf, -                      struct iatt *preparent, struct iatt *postparent) +                      struct iatt *preparent, struct iatt *postparent, +                      dict_t *xdata)  {          dht_local_t  *local = NULL;          int           ret = -1; @@ -3766,19 +3794,20 @@ dht_mkdir_hashed_cbk (call_frame_t *frame, void *cookie,                          continue;                  STACK_WIND (frame, dht_mkdir_cbk,                              conf->subvolumes[i], -                            conf->subvolumes[i]->fops->mkdir, -                            &local->loc, local->mode, local->params); +                            conf->subvolumes[i]->fops->mkdir, &local->loc, +                            local->mode, local->umask, local->params);          }          return 0;  err: -        DHT_STACK_UNWIND (mkdir, frame, -1, op_errno, NULL, NULL, NULL, NULL); +        DHT_STACK_UNWIND (mkdir, frame, -1, op_errno, NULL, NULL, NULL, +                          NULL, NULL);          return 0;  }   int  dht_mkdir (call_frame_t *frame, xlator_t *this, -           loc_t *loc, mode_t mode, dict_t *params) +           loc_t *loc, mode_t mode, mode_t umask, dict_t *params)  {          dht_local_t  *local  = NULL;          dht_conf_t   *conf = NULL; @@ -3814,6 +3843,7 @@ dht_mkdir (call_frame_t *frame, xlator_t *this,          local->hashed_subvol = hashed_subvol;          local->mode = mode; +        local->umask = umask;          local->params = dict_ref (params);          local->inode  = inode_ref (loc->inode); @@ -3826,13 +3856,14 @@ dht_mkdir (call_frame_t *frame, xlator_t *this,          STACK_WIND (frame, dht_mkdir_hashed_cbk,                      hashed_subvol,                      hashed_subvol->fops->mkdir, -                    loc, mode, params); +                    loc, mode, umask, params);          return 0;  err:          op_errno = (op_errno == -1) ? errno : op_errno; -        DHT_STACK_UNWIND (mkdir, frame, -1, op_errno, NULL, NULL, NULL, NULL); +        DHT_STACK_UNWIND (mkdir, frame, -1, op_errno, NULL, NULL, NULL, +                          NULL, NULL);          return 0;  } @@ -3840,14 +3871,14 @@ err:  int  dht_rmdir_selfheal_cbk (call_frame_t *frame, void *cookie, xlator_t *this, -                        int op_ret, int op_errno) +                        int op_ret, int op_errno, dict_t *xdata)  {          dht_local_t  *local = NULL;          local = frame->local;          DHT_STACK_UNWIND (rmdir, frame, local->op_ret, local->op_errno, -                          &local->preparent, &local->postparent); +                          &local->preparent, &local->postparent, NULL);          return 0;  } @@ -3856,7 +3887,7 @@ dht_rmdir_selfheal_cbk (call_frame_t *frame, void *cookie, xlator_t *this,  int  dht_rmdir_cbk (call_frame_t *frame, void *cookie, xlator_t *this,                 int op_ret, int op_errno, struct iatt *preparent, -               struct iatt *postparent) +               struct iatt *postparent, dict_t *xdata)  {          dht_local_t  *local = NULL;          int           this_call_cnt = 0; @@ -3912,7 +3943,7 @@ unlock:                          DHT_STACK_UNWIND (rmdir, frame, local->op_ret,                                            local->op_errno, &local->preparent, -                                          &local->postparent); +                                          &local->postparent, NULL);                  }          } @@ -3941,14 +3972,14 @@ dht_rmdir_do (call_frame_t *frame, xlator_t *this)                  STACK_WIND (frame, dht_rmdir_cbk,                              conf->subvolumes[i],                              conf->subvolumes[i]->fops->rmdir, -                            &local->loc, local->flags); +                            &local->loc, local->flags, NULL);          }          return 0;  err:          DHT_STACK_UNWIND (rmdir, frame, local->op_ret, local->op_errno, -                          &local->preparent, &local->postparent); +                          &local->preparent, &local->postparent, NULL);          return 0;  } @@ -3956,7 +3987,7 @@ err:  int  dht_rmdir_linkfile_unlink_cbk (call_frame_t *frame, void *cookie, xlator_t *this,                                 int op_ret, int op_errno, struct iatt *preparent, -                               struct iatt *postparent) +                               struct iatt *postparent, dict_t *xdata)  {          dht_local_t    *local = NULL;          call_frame_t   *prev = NULL; @@ -4026,7 +4057,7 @@ dht_rmdir_lookup_cbk (call_frame_t *frame, void *cookie, xlator_t *this,          }          STACK_WIND (frame, dht_rmdir_linkfile_unlink_cbk, -                    src, src->fops->unlink, &local->loc); +                    src, src->fops->unlink, &local->loc, 0, NULL);          return 0;  err: @@ -4125,7 +4156,8 @@ err:  int  dht_rmdir_readdirp_cbk (call_frame_t *frame, void *cookie, xlator_t *this, -                        int op_ret, int op_errno, gf_dirent_t *entries) +                        int op_ret, int op_errno, gf_dirent_t *entries, +                        dict_t *xdata)  {          dht_local_t  *local = NULL;          int           this_call_cnt = -1; @@ -4169,7 +4201,7 @@ dht_rmdir_readdirp_cbk (call_frame_t *frame, void *cookie, xlator_t *this,  int  dht_rmdir_opendir_cbk (call_frame_t *frame, void *cookie, xlator_t *this, -                       int op_ret, int op_errno, fd_t *fd) +                       int op_ret, int op_errno, fd_t *fd, dict_t *xdata)  {          dht_local_t  *local = NULL;          int           this_call_cnt = -1; @@ -4225,7 +4257,8 @@ err:  int -dht_rmdir (call_frame_t *frame, xlator_t *this, loc_t *loc, int flags) +dht_rmdir (call_frame_t *frame, xlator_t *this, loc_t *loc, int flags, +           dict_t *xdata)  {          dht_local_t  *local  = NULL;          dht_conf_t   *conf = NULL; @@ -4264,7 +4297,7 @@ dht_rmdir (call_frame_t *frame, xlator_t *this, loc_t *loc, int flags)                  STACK_WIND (frame, dht_rmdir_opendir_cbk,                              conf->subvolumes[i],                              conf->subvolumes[i]->fops->opendir, -                            loc, local->fd); +                            loc, local->fd, NULL);          }          return 0; @@ -4272,17 +4305,17 @@ dht_rmdir (call_frame_t *frame, xlator_t *this, loc_t *loc, int flags)  err:          op_errno = (op_errno == -1) ? errno : op_errno;          DHT_STACK_UNWIND (rmdir, frame, -1, op_errno, -                          NULL, NULL); +                          NULL, NULL, NULL);          return 0;  }  int  dht_entrylk_cbk (call_frame_t *frame, void *cookie, -                 xlator_t *this, int32_t op_ret, int32_t op_errno) +                 xlator_t *this, int32_t op_ret, int32_t op_errno, dict_t *xdata)  { -        DHT_STACK_UNWIND (entrylk, frame, op_ret, op_errno); +        DHT_STACK_UNWIND (entrylk, frame, op_ret, op_errno, xdata);          return 0;  } @@ -4290,7 +4323,7 @@ dht_entrylk_cbk (call_frame_t *frame, void *cookie,  int  dht_entrylk (call_frame_t *frame, xlator_t *this,               const char *volume, loc_t *loc, const char *basename, -             entrylk_cmd cmd, entrylk_type type) +             entrylk_cmd cmd, entrylk_type type, dict_t *xdata)  {          xlator_t     *subvol = NULL;          int           op_errno = -1; @@ -4320,13 +4353,13 @@ dht_entrylk (call_frame_t *frame, xlator_t *this,          STACK_WIND (frame, dht_entrylk_cbk,                      subvol, subvol->fops->entrylk, -                    volume, loc, basename, cmd, type); +                    volume, loc, basename, cmd, type, xdata);          return 0;  err:          op_errno = (op_errno == -1) ? errno : op_errno; -        DHT_STACK_UNWIND (entrylk, frame, -1, op_errno); +        DHT_STACK_UNWIND (entrylk, frame, -1, op_errno, NULL);          return 0;  } @@ -4334,10 +4367,10 @@ err:  int  dht_fentrylk_cbk (call_frame_t *frame, void *cookie, -                  xlator_t *this, int32_t op_ret, int32_t op_errno) +                  xlator_t *this, int32_t op_ret, int32_t op_errno, dict_t *xdata)  { -        DHT_STACK_UNWIND (fentrylk, frame, op_ret, op_errno); +        DHT_STACK_UNWIND (fentrylk, frame, op_ret, op_errno, NULL);          return 0;  } @@ -4345,7 +4378,7 @@ dht_fentrylk_cbk (call_frame_t *frame, void *cookie,  int  dht_fentrylk (call_frame_t *frame, xlator_t *this,                const char *volume, fd_t *fd, const char *basename, -              entrylk_cmd cmd, entrylk_type type) +              entrylk_cmd cmd, entrylk_type type, dict_t *xdata)  {          xlator_t     *subvol = NULL;          int           op_errno = -1; @@ -4364,13 +4397,13 @@ dht_fentrylk (call_frame_t *frame, xlator_t *this,          STACK_WIND (frame, dht_fentrylk_cbk,                      subvol, subvol->fops->fentrylk, -                    volume, fd, basename, cmd, type); +                    volume, fd, basename, cmd, type, xdata);          return 0;  err:          op_errno = (op_errno == -1) ? errno : op_errno; -        DHT_STACK_UNWIND (fentrylk, frame, -1, op_errno); +        DHT_STACK_UNWIND (fentrylk, frame, -1, op_errno, NULL);          return 0;  }  | 
