diff options
Diffstat (limited to 'libglusterfs/src')
| -rw-r--r-- | libglusterfs/src/syncop.c | 4 | ||||
| -rw-r--r-- | libglusterfs/src/syncop.h | 1 | 
2 files changed, 4 insertions, 1 deletions
diff --git a/libglusterfs/src/syncop.c b/libglusterfs/src/syncop.c index cc25cd58815..3e176cffc17 100644 --- a/libglusterfs/src/syncop.c +++ b/libglusterfs/src/syncop.c @@ -291,8 +291,10 @@ synctask_yield (struct synctask *task)          task->proc->sched.uc_flags &= ~_UC_TLSBASE;  #endif -        if (task->state != SYNCTASK_DONE) +        if (task->state != SYNCTASK_DONE) {                  task->state = SYNCTASK_SUSPEND; +                (void) gf_backtrace_save (task->btbuf); +        }          if (swapcontext (&task->ctx, &task->proc->sched) < 0) {                  gf_log ("syncop", GF_LOG_ERROR,                          "swapcontext failed (%s)", strerror (errno)); diff --git a/libglusterfs/src/syncop.h b/libglusterfs/src/syncop.h index 80b899badb2..31438b17883 100644 --- a/libglusterfs/src/syncop.h +++ b/libglusterfs/src/syncop.h @@ -79,6 +79,7 @@ struct synctask {          int                 done;  	struct list_head    waitq; /* can wait only "once" at a time */ +        char                btbuf[GF_BACKTRACE_LEN];  };  | 
