diff options
author | Raghavendra Bhat <raghavendra@redhat.com> | 2014-06-17 00:28:01 +0530 |
---|---|---|
committer | Vijay Bellur <vbellur@redhat.com> | 2014-09-08 07:14:19 -0700 |
commit | 822cf315a5d0f0d2bc90e9f2d8faa6e5e5701ed4 (patch) | |
tree | c386b9c054c86b033cf1945dc7ce3c7a3af687e9 /xlators/features/snapview-client | |
parent | 5c869aea79c0f304150eac014c7177e74ce0852e (diff) |
snapview-server: register a callback with glusterd to get notifications
* As of now snapview-server is polling (sending rpc requests to glusterd) to
get the latest list of snapshots at some regular time intervals
(non configurable). Instead of that register a callback with glusterd so that
glusterd sends notifications to snapd whenever a snapshot is created/deleted
and snapview-server can configure itself.
Change-Id: I17a274fd2ab487d030678f0077feb2b0f35e5896
BUG: 1119628
Signed-off-by: Raghavendra Bhat <raghavendra@redhat.com>
Reviewed-on: http://review.gluster.org/8150
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Vijay Bellur <vbellur@redhat.com>
Diffstat (limited to 'xlators/features/snapview-client')
-rw-r--r-- | xlators/features/snapview-client/src/snapview-client.c | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/xlators/features/snapview-client/src/snapview-client.c b/xlators/features/snapview-client/src/snapview-client.c index ad022101715..c9077351007 100644 --- a/xlators/features/snapview-client/src/snapview-client.c +++ b/xlators/features/snapview-client/src/snapview-client.c @@ -148,12 +148,14 @@ svc_lookup_cbk (call_frame_t *frame, void *cookie, xlator_t *this, So if lookup fails with ENOENT and the inode context is not there, then send the lookup to the 2nd child of svc. */ - ret = svc_inode_ctx_get (this, inode, &inode_type); if (op_ret) { - if (op_errno == ENOENT && (ret < 0) && - !uuid_is_null (local->loc.gfid) && - !__is_root_gfid (local->loc.gfid)) { - if (subvolume == FIRST_CHILD (this)) { + if (op_errno == ENOENT && + !uuid_is_null (local->loc.gfid)) { + ret = svc_inode_ctx_get (this, inode, &inode_type); + if (ret < 0 && subvolume == FIRST_CHILD (this)) { + gf_log (this->name, GF_LOG_DEBUG, + "Lookup on normal graph failed. " + "Sending lookup to snapview-server"); subvolume = SECOND_CHILD (this); STACK_WIND (frame, svc_lookup_cbk, subvolume, subvolume->fops->lookup, @@ -162,8 +164,10 @@ svc_lookup_cbk (call_frame_t *frame, void *cookie, xlator_t *this, } } - gf_log (this->name, GF_LOG_WARNING, - "Lookup on normal graph failed"); + gf_log (this->name, + (op_errno == ENOENT)?GF_LOG_DEBUG:GF_LOG_ERROR, + "Lookup on normal graph failed with error %s", + strerror (op_errno)); goto out; } |