diff options
Diffstat (limited to 'libglusterfs/src/stack.h')
| -rw-r--r-- | libglusterfs/src/stack.h | 14 | 
1 files changed, 14 insertions, 0 deletions
diff --git a/libglusterfs/src/stack.h b/libglusterfs/src/stack.h index 63307192ae5..b14b08dbb9a 100644 --- a/libglusterfs/src/stack.h +++ b/libglusterfs/src/stack.h @@ -254,6 +254,20 @@ STACK_RESET (call_stack_t *stack)          } while (0) +/* make a call without switching frames */ +#define STACK_WIND_TAIL(frame, obj, fn, params ...)                     \ +        do {                                                            \ +                xlator_t     *old_THIS = NULL;                          \ +                                                                        \ +                frame->this = obj;                                      \ +                frame->wind_to = #fn;                                   \ +                old_THIS = THIS;                                        \ +                THIS = obj;                                             \ +                fn (frame, obj, params);                                \ +                THIS = old_THIS;                                        \ +        } while (0) + +  /* make a call with a cookie */  #define STACK_WIND_COOKIE(frame, rfn, cky, obj, fn, params ...)         \          do {                                                            \  | 
