summaryrefslogtreecommitdiffstats
path: root/xlators/features/upcall/src/upcall.c
diff options
context:
space:
mode:
authorSoumya Koduri <skoduri@redhat.com>2015-03-30 16:56:59 +0530
committerVijay Bellur <vbellur@redhat.com>2015-05-07 04:19:16 -0700
commitea8d9ebafa4a6afb99721022e638292fd475ed62 (patch)
tree3419bbcd116abd6b8361a3b0a997081cddc82139 /xlators/features/upcall/src/upcall.c
parent14011cb0383ac19b98b02f0caec5a1977ecd7c35 (diff)
Upcall: Process each of the upcall events separately
As suggested during the code-review of Bug1200262, have modified GF_CBK_UPCALL to be exlusively GF_CBK_CACHE_INVALIDATION. Thus, for any new upcall event, a new CBK procedure will be added. Also made changes to store upcall data separately based on the upcall event type received. BUG: 1217711 Change-Id: I0f5e53d6f5ece16aecb514a0a426dca40fa1c755 Signed-off-by: Soumya Koduri <skoduri@redhat.com> Reviewed-on: http://review.gluster.org/10049 Reviewed-by: Kaleb KEITHLEY <kkeithle@redhat.com> Reviewed-on: http://review.gluster.org/10562 Tested-by: NetBSD Build System Tested-by: Gluster Build System <jenkins@build.gluster.com>
Diffstat (limited to 'xlators/features/upcall/src/upcall.c')
-rw-r--r--xlators/features/upcall/src/upcall.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/xlators/features/upcall/src/upcall.c b/xlators/features/upcall/src/upcall.c
index 93861e7955f..21f8e0ba339 100644
--- a/xlators/features/upcall/src/upcall.c
+++ b/xlators/features/upcall/src/upcall.c
@@ -887,6 +887,7 @@ notify (xlator_t *this, int32_t event, void *data, ...)
notify_event_data_t *notify_event = NULL;
struct gf_upcall up_req = {0,};
upcall_client_t *up_client_entry = NULL;
+ struct gf_upcall_cache_invalidation ca_req = {0,};
switch (event) {
case GF_EVENT_UPCALL:
@@ -903,16 +904,17 @@ notify (xlator_t *this, int32_t event, void *data, ...)
up_req.client_uid = up_client_entry->client_uid;
- memcpy (up_req.gfid, notify_event->gfid, 16);
+ gf_uuid_copy (up_req.gfid, notify_event->gfid);
gf_log (this->name, GF_LOG_DEBUG,
"Sending notify to the client- %s, gfid - %s",
up_client_entry->client_uid, up_req.gfid);
switch (notify_event->event_type) {
- case CACHE_INVALIDATION:
- GF_ASSERT (notify_event->extra);
- up_req.flags = notify_event->invalidate_flags;
- up_req.expire_time_attr = up_client_entry->expire_time_attr;
+ case GF_UPCALL_CACHE_INVALIDATION:
+ ca_req.flags = notify_event->invalidate_flags;
+ ca_req.expire_time_attr =
+ up_client_entry->expire_time_attr;
+ up_req.data = &ca_req;
break;
default:
goto out;