summaryrefslogtreecommitdiffstats
path: root/xlators/features/upcall/src/upcall.c
diff options
context:
space:
mode:
authorSoumya Koduri <skoduri@redhat.com>2015-06-04 11:25:35 +0530
committerNiels de Vos <ndevos@redhat.com>2015-06-09 06:46:20 -0700
commitb77c8ddda8e68c1086227b19f9fb5db9bf89b0dc (patch)
treea4b20a9e5118d1ac85dbd06a3017c108635d5a9b /xlators/features/upcall/src/upcall.c
parentc51eb694bce443ae7c0584b1545c14254569ae49 (diff)
Upcall/cache-invalidation: Ignore fops with frame->root->client not set
Server-side internally generated fops like 'quota/marker' will not have any client associated with the frame. Hence we need a check for clients to be valid before processing for upcall cache invalidation. Also fixed an issue with initializing reaper-thread. Added a testcase to test the fix. Change-Id: If7419b98aca383f4b80711c10fef2e0b32498c57 BUG: 1227204 Signed-off-by: Soumya Koduri <skoduri@redhat.com> Reviewed-on: http://review.gluster.org/10909 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Kaleb KEITHLEY <kkeithle@redhat.com> Reviewed-by: jiffin tony Thottan <jthottan@redhat.com> Tested-by: NetBSD Build System <jenkins@build.gluster.org> Reviewed-by: Niels de Vos <ndevos@redhat.com>
Diffstat (limited to 'xlators/features/upcall/src/upcall.c')
-rw-r--r--xlators/features/upcall/src/upcall.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/xlators/features/upcall/src/upcall.c b/xlators/features/upcall/src/upcall.c
index 50e621a1127..0e2a75473dc 100644
--- a/xlators/features/upcall/src/upcall.c
+++ b/xlators/features/upcall/src/upcall.c
@@ -1576,8 +1576,8 @@ upcall_local_wipe (xlator_t *this, upcall_local_t *local)
{
if (local) {
inode_unref (local->inode);
- mem_put (local);
loc_wipe (&local->rename_oldloc);
+ mem_put (local);
}
}
@@ -1629,6 +1629,7 @@ reconfigure (xlator_t *this, dict_t *options)
" Disabling cache_invalidation",
strerror(errno));
}
+ priv->reaper_init_done = 1;
}
out:
@@ -1675,6 +1676,7 @@ init (xlator_t *this)
" Disabling cache_invalidation",
strerror(errno));
}
+ priv->reaper_init_done = 1;
}
out:
if (ret) {