diff options
| author | Soumya Koduri <skoduri@redhat.com> | 2015-03-24 10:30:31 +0530 | 
|---|---|---|
| committer | Kaleb KEITHLEY <kkeithle@redhat.com> | 2015-03-31 11:16:26 -0700 | 
| commit | 25f97b2788a33efcb0714ad639f8db380b864982 (patch) | |
| tree | 9720bdd09e04239dcd75bdb88ddc97623ec6fb44 /api/src/glfs-handleops.c | |
| parent | e6f5ace08ad0a068cb49d3ca1274a27aa031992b (diff) | |
Upcall: Added xlator options to enable cache-invalidation
Added two xlator options to enable cache-invalidation and set
cache-invalidation-timeout.
In addition, made few minor changes in the upcall processing code
in gfapi.
Change-Id: Ie0b32ca8348e34e3fe4f1e7df30cc925fa4aad31
BUG: 1200271
Signed-off-by: Soumya Koduri <skoduri@redhat.com>
Reviewed-on: http://review.gluster.org/9975
Reviewed-by: Meghana M <mmadhusu@redhat.com>
Reviewed-by: Kaleb KEITHLEY <kkeithle@redhat.com>
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Diffstat (limited to 'api/src/glfs-handleops.c')
| -rw-r--r-- | api/src/glfs-handleops.c | 23 | 
1 files changed, 11 insertions, 12 deletions
diff --git a/api/src/glfs-handleops.c b/api/src/glfs-handleops.c index e60bb8e1317..d42e0354268 100644 --- a/api/src/glfs-handleops.c +++ b/api/src/glfs-handleops.c @@ -1618,15 +1618,14 @@ GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_rename, 3.4.2);   * This API is used to poll for upcall events stored in the   * upcall list. Current users of this API is NFS-Ganesha.   * Incase of any event received, it will be mapped appropriately - * into 'callback_arg' along with the handle to be passed to - * NFS-Ganesha. + * into 'callback_arg' along with the handle object  to be passed + * to NFS-Ganesha.   * - * Application is responsible for allocating and passing the - * references of all the pointers except for "glhandle". - * After processing the event, it needs to free "glhandle" + * On success, applications need to check for 'object' to decide + * if any upcall event is received.   * - * TODO: there should be a glfs api to destroy these handles, - * maybe "glfs_destroy_object" to free the object. + * After processing the event, they need to free "object" + * using glfs_h_close(..).   *   * Also similar to I/Os, the application should ideally stop polling   * before calling glfs_fini(..). Hence making an assumption that @@ -1635,7 +1634,7 @@ GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_rename, 3.4.2);  int  pub_glfs_h_poll_upcall (struct glfs *fs, struct callback_arg *up_arg)  { -        struct glfs_object  *handle   = NULL; +        struct glfs_object  *object   = NULL;          uuid_t              gfid;          upcall_entry        *u_list   = NULL;          upcall_entry        *tmp      = NULL; @@ -1660,7 +1659,7 @@ pub_glfs_h_poll_upcall (struct glfs *fs, struct callback_arg *up_arg)                  goto err;          } -        up_arg->handle = NULL; +        up_arg->object = NULL;          /* Ideally applications should stop polling before calling           * 'glfs_fini'. Yet cross check if cleanup has started @@ -1692,11 +1691,11 @@ pub_glfs_h_poll_upcall (struct glfs *fs, struct callback_arg *up_arg)          pthread_mutex_unlock (&fs->upcall_list_mutex);          if (found) { -                handle = glfs_h_create_from_handle (fs, gfid, +                object = glfs_h_create_from_handle (fs, gfid,                                                      GFAPI_HANDLE_LENGTH,                                                      &up_arg->buf); -                if (!handle) { +                if (!object) {                          errno = ENOMEM;                          goto out;                  } @@ -1718,7 +1717,7 @@ pub_glfs_h_poll_upcall (struct glfs *fs, struct callback_arg *up_arg)                          break;                  } -                up_arg->handle = handle; +                up_arg->object = object;                  up_arg->reason = reason;                  up_arg->flags = u_list->flags;                  up_arg->expire_time_attr = u_list->expire_time_attr;  | 
