diff options
| -rw-r--r-- | xlators/features/changelog/lib/src/gf-changelog-journal-handler.c | 9 | ||||
| -rw-r--r-- | xlators/features/changelog/lib/src/gf-changelog.c | 13 | 
2 files changed, 14 insertions, 8 deletions
diff --git a/xlators/features/changelog/lib/src/gf-changelog-journal-handler.c b/xlators/features/changelog/lib/src/gf-changelog-journal-handler.c index 2975b06757f..f07d341ddef 100644 --- a/xlators/features/changelog/lib/src/gf-changelog-journal-handler.c +++ b/xlators/features/changelog/lib/src/gf-changelog-journal-handler.c @@ -790,13 +790,16 @@ gf_changelog_init_processor (gf_changelog_journal_t *jnl)                  goto cleanup_mutex;          INIT_LIST_HEAD (&jnl_proc->entries); +        jnl_proc->waiting = _gf_false; +        jnl->jnl_proc = jnl_proc; +          ret = pthread_create (&jnl_proc->processor,                                NULL, gf_changelog_process, jnl); -        if (ret != 0) +        if (ret != 0) { +                jnl->jnl_proc = NULL;                  goto cleanup_cond; -        jnl_proc->waiting = _gf_false; +        } -        jnl->jnl_proc = jnl_proc;          return 0;   cleanup_cond: diff --git a/xlators/features/changelog/lib/src/gf-changelog.c b/xlators/features/changelog/lib/src/gf-changelog.c index 82abc662632..874ffd0d13b 100644 --- a/xlators/features/changelog/lib/src/gf-changelog.c +++ b/xlators/features/changelog/lib/src/gf-changelog.c @@ -292,11 +292,6 @@ gf_init_event (gf_changelog_t *entry)          ev->next_seq = 0;  /* bootstrap sequencing */ -        ret = gf_thread_create (&ev->invoker, NULL, -                                gf_changelog_callback_invoker, ev); -        if (ret != 0) -                goto cleanup_cond; -          if (GF_NEED_ORDERED_EVENTS (entry)) {                  entry->pickevent  = pick_event_ordered;                  entry->queueevent = queue_ordered_event; @@ -305,6 +300,14 @@ gf_init_event (gf_changelog_t *entry)                  entry->queueevent = queue_unordered_event;          } +        ret = gf_thread_create (&ev->invoker, NULL, +                                gf_changelog_callback_invoker, ev); +        if (ret != 0) { +                entry->pickevent = NULL; +                entry->queueevent = NULL; +                goto cleanup_cond; +        } +          return 0;   cleanup_cond:  | 
