diff options
Diffstat (limited to 'libglusterfs/src')
| -rw-r--r-- | libglusterfs/src/stack.h | 8 | 
1 files changed, 5 insertions, 3 deletions
diff --git a/libglusterfs/src/stack.h b/libglusterfs/src/stack.h index cbf7e9adb95..de2179d0051 100644 --- a/libglusterfs/src/stack.h +++ b/libglusterfs/src/stack.h @@ -279,17 +279,19 @@ STACK_RESET (call_stack_t *stack)  #define STACK_WIND_TAIL(frame, obj, fn, params ...)                     \          do {                                                            \                  xlator_t     *old_THIS = NULL;                          \ +                xlator_t     *next_xl = obj;                            \ +                typeof(fn)    next_xl_fn = fn;                          \                                                                          \ -                frame->this = obj;                                      \ +                frame->this = next_xl;                                  \                  frame->wind_to = #fn;                                   \                  old_THIS = THIS;                                        \ -                THIS = obj;                                             \ +                THIS = next_xl;                                         \                  gf_msg_trace ("stack-trace", 0,                         \                                "stack-address: %p, "                     \                                "winding from %s to %s",                  \                                frame->root, old_THIS->name,              \                                THIS->name);                              \ -                fn (frame, obj, params);                                \ +                next_xl_fn (frame, next_xl, params);                    \                  THIS = old_THIS;                                        \          } while (0)  | 
