summaryrefslogtreecommitdiffstats
path: root/tests/basic/gfapi
diff options
context:
space:
mode:
authorSoumya Koduri <skoduri@redhat.com>2015-04-30 13:28:44 +0530
committerKaleb KEITHLEY <kkeithle@redhat.com>2015-05-05 06:57:43 -0700
commit170cc4ea08aa48e69c2df6be5841076c9a119d5a (patch)
treea1afb1e9efc19225a4f37a1cb08deb6b4aaffebf /tests/basic/gfapi
parent08107796c89f5f201b24d689ab6757237c743c0d (diff)
Upcall: Send stat as part of cache_invalidation notifications
Have added support to send attributes of both entries and its parent (include oldparent in case of RENAME fop) in the same notification request to avoid multiple rpc requests. Also, made changes in gfapi to send parent object and its attributes changed in a single upcall event. Change-Id: I92833da3bcec38d65216921c2ce4d10367c32ef1 BUG: 1200262 Signed-off-by: Soumya Koduri <skoduri@redhat.com> Reviewed-on: http://review.gluster.org/10460 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Kaleb KEITHLEY <kkeithle@redhat.com>
Diffstat (limited to 'tests/basic/gfapi')
-rw-r--r--tests/basic/gfapi/upcall-cache-invalidate.c17
1 files changed, 13 insertions, 4 deletions
diff --git a/tests/basic/gfapi/upcall-cache-invalidate.c b/tests/basic/gfapi/upcall-cache-invalidate.c
index 64811f3274a..cc2e6a0fe33 100644
--- a/tests/basic/gfapi/upcall-cache-invalidate.c
+++ b/tests/basic/gfapi/upcall-cache-invalidate.c
@@ -41,8 +41,9 @@ main (int argc, char *argv[])
struct callback_arg cbk;
char *logfile = NULL;
char *volname = NULL;
+ struct callback_inode_arg *in_arg = NULL;
- cbk.object = NULL;
+ cbk.reason = 0;
if (argc != 3) {
fprintf (stderr, "Invalid argument\n");
@@ -147,10 +148,18 @@ main (int argc, char *argv[])
if (cnt > 2) {
ret = glfs_h_poll_upcall(fs_tmp, &cbk);
LOG_ERR ("glfs_h_poll_upcall", ret);
- if (cbk.object) {
+ /* Expect 'GFAPI_INODE_INVALIDATE' upcall event. */
+ if (cbk.reason == GFAPI_INODE_INVALIDATE) {
+ in_arg = cbk.event_arg;
fprintf (stderr, " upcall event type - %d,"
- " flags - %d, expire_time_attr - %d\n" ,
- cbk.reason, cbk.flags, cbk.expire_time_attr);
+ " object(%p), flags(%d), "
+ " expire_time_attr(%d)\n" ,
+ cbk.reason, in_arg->object,
+ in_arg->flags,
+ in_arg->expire_time_attr);
+ ret = glfs_h_close (in_arg->object);
+ LOG_ERR ("glfs_h_close", ret);
+ free (in_arg);
} else {
fprintf (stderr,
"Dint receive upcall notify event");