summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorShyam <srangana@redhat.com>2014-09-11 14:21:23 +0530
committerNiels de Vos <ndevos@redhat.com>2014-10-01 03:37:24 -0700
commit8c6eb5e04f837f679b3ca04ef784054afb18d66c (patch)
tree2584cf3d86fe11183e03fe54b3afd9b2528cb77f
parent0a4119e321be46bf274e1ee4251a15609ad09df7 (diff)
cluster/dht: Fixed double UNWIND in lookup everywhere code
In dht_lookup_everywhere_done: Line: 1194 we call DHT_STACK_UNWIND and in the same if condition we go ahead and call, goto unwind_hashed_and_cached; which at Line 1371 calls another UNWIND. As is obvious, higher frames could cleanup their locals and on receiving the next unwind could cause a coredump of the process. Fixed the same by calling the required return post the first unwind Change-Id: Ic5d57da98255b8616a65b4caaedabeba9144fd49 BUG: 1140549 Signed-off-by: Shyam <srangana@redhat.com> Reviewed-on: http://review.gluster.org/8666 Reviewed-by: N Balachandran <nbalacha@redhat.com> Reviewed-by: Vijay Bellur <vbellur@redhat.com> Reviewed-by: Jeff Darcy <jdarcy@redhat.com> Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: susant palai <spalai@redhat.com> (cherry picked from commit b3314ea6e820fb659255d0e6e9a32ea259b7526d) Signed-off-by: Nithya Balachandran <nbalacha@redhat.com> Reviewed-on: http://review.gluster.org/8732 Reviewed-by: Niels de Vos <ndevos@redhat.com>
-rw-r--r--xlators/cluster/dht/src/dht-common.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/xlators/cluster/dht/src/dht-common.c b/xlators/cluster/dht/src/dht-common.c
index 52d9e50cd1e..ca15f0d1754 100644
--- a/xlators/cluster/dht/src/dht-common.c
+++ b/xlators/cluster/dht/src/dht-common.c
@@ -1122,11 +1122,11 @@ dht_lookup_everywhere_done (call_frame_t *frame, xlator_t *this)
local->skip_unlink.hashed_gfid)){
/*GFID different, return error*/
- DHT_STACK_UNWIND (lookup, frame, -1,
- ESTALE, NULL, NULL, NULL,
- NULL);
-
+ DHT_STACK_UNWIND (lookup, frame, -1,
+ ESTALE, NULL, NULL,
+ NULL, NULL);
+ return 0;
}
ret = dht_layout_preset (this, cached_subvol,