From f1712395a255656dc57f1ebb095001d084cbec79 Mon Sep 17 00:00:00 2001 From: Krutika Dhananjay Date: Thu, 27 Apr 2017 11:53:24 +0530 Subject: [PATCH 314/316] cluster/dht: Pass the correct xdata in fremovexattr fop Backport of: https://review.gluster.org/17126 Change-Id: Ibcb50dbccaab9b8b965dc92e771a5252942f0578 BUG: 1439753 Signed-off-by: Krutika Dhananjay Reviewed-on: https://code.engineering.redhat.com/gerrit/105198 Reviewed-by: Nithya Balachandran --- xlators/cluster/dht/src/dht-common.c | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/xlators/cluster/dht/src/dht-common.c b/xlators/cluster/dht/src/dht-common.c index 93bb2ad..8317cc0 100644 --- a/xlators/cluster/dht/src/dht-common.c +++ b/xlators/cluster/dht/src/dht-common.c @@ -4361,6 +4361,7 @@ dht_fremovexattr (call_frame_t *frame, xlator_t *this, op_errno = EINVAL; goto err; } + local->xattr_req = xdata ? dict_ref (xdata) : dict_new (); local->call_cnt = call_cnt = layout->cnt; local->key = gf_strdup (key); @@ -4370,29 +4371,23 @@ 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, NULL); + fd, key, local->xattr_req); } } else { local->call_cnt = 1; - xdata = xdata ? dict_ref (xdata) : dict_new (); - if (xdata) - ret = dict_set_dynstr_with_alloc (xdata, - DHT_IATT_IN_XDATA_KEY, "yes"); + ret = dict_set_dynstr_with_alloc (local->xattr_req, + DHT_IATT_IN_XDATA_KEY, "yes"); if (ret) { gf_msg (this->name, GF_LOG_ERROR, ENOMEM, DHT_MSG_DICT_SET_FAILED, "Failed to " "set dictionary key %s for fd=%p", DHT_IATT_IN_XDATA_KEY, fd); } - STACK_WIND (frame, dht_file_removexattr_cbk, subvol, subvol->fops->fremovexattr, - fd, key, xdata); - - if (xdata) - dict_unref (xdata); + fd, key, local->xattr_req); } return 0; -- 1.8.3.1