diff options
| author | Soumya Koduri <skoduri@redhat.com> | 2015-03-30 16:56:59 +0530 | 
|---|---|---|
| committer | Kaleb KEITHLEY <kkeithle@redhat.com> | 2015-04-30 04:51:46 -0700 | 
| commit | 2bf85951c6c25aa17acc591fabc3b3927b6dc82f (patch) | |
| tree | 8db692b3c4f833f3a075cb5fb58195dda9004280 /xlators/features/upcall/src/upcall.c | |
| parent | 288e02853d913b96e4d6bce9afb16da7d891546f (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: 1200262
Change-Id: I0f5e53d6f5ece16aecb514a0a426dca40fa1c755
Signed-off-by: Soumya Koduri <skoduri@redhat.com>
Reviewed-on: http://review.gluster.org/10049
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Kaleb KEITHLEY <kkeithle@redhat.com>
Diffstat (limited to 'xlators/features/upcall/src/upcall.c')
| -rw-r--r-- | xlators/features/upcall/src/upcall.c | 12 | 
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;  | 
