From 3021a9ab666e9f1a5116df84e77659aca613e955 Mon Sep 17 00:00:00 2001 From: Poornima G Date: Mon, 20 Jul 2015 14:29:24 +0530 Subject: dht: Add lease() fop Change-Id: I0bbc2c2ef115c78393f6570815a5b80316e7e4be BUG: 1319992 Signed-off-by: Poornima G Reviewed-on: http://review.gluster.org/11720 Smoke: Gluster Build System NetBSD-regression: NetBSD Build System CentOS-regression: Gluster Build System Reviewed-by: Raghavendra Talur Reviewed-by: Rajesh Joseph Reviewed-by: Jeff Darcy --- xlators/cluster/dht/src/dht-inode-read.c | 41 ++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) (limited to 'xlators/cluster/dht/src/dht-inode-read.c') diff --git a/xlators/cluster/dht/src/dht-inode-read.c b/xlators/cluster/dht/src/dht-inode-read.c index d40ac7d4c61..72c81c400af 100644 --- a/xlators/cluster/dht/src/dht-inode-read.c +++ b/xlators/cluster/dht/src/dht-inode-read.c @@ -981,6 +981,47 @@ err: return 0; } +int +dht_lease_cbk (call_frame_t *frame, void *cookie, xlator_t *this, + int op_ret, int op_errno, struct gf_lease *lease, dict_t *xdata) +{ + DHT_STACK_UNWIND (lease, frame, op_ret, op_errno, lease, xdata); + + return 0; +} + +int +dht_lease (call_frame_t *frame, xlator_t *this, + loc_t *loc, struct gf_lease *lease, dict_t *xdata) +{ + xlator_t *subvol = NULL; + int op_errno = -1; + + VALIDATE_OR_GOTO (frame, err); + VALIDATE_OR_GOTO (this, err); + VALIDATE_OR_GOTO (loc, err); + + subvol = dht_subvol_get_cached (this, loc->inode); + if (!subvol) { + gf_msg_debug (this->name, 0, + "no cached subvolume for path=%s", loc->path); + op_errno = EINVAL; + goto err; + } + + /* TODO: for rebalance, we need to preserve the fop arguments */ + STACK_WIND (frame, dht_lease_cbk, subvol, subvol->fops->lease, + loc, lease, xdata); + + return 0; + +err: + op_errno = (op_errno == -1) ? errno : op_errno; + DHT_STACK_UNWIND (lease, frame, -1, op_errno, NULL, NULL); + + return 0; +} + /* Symlinks are currently not migrated, so no need for any check here */ int dht_readlink_cbk (call_frame_t *frame, void *cookie, xlator_t *this, -- cgit