diff options
| -rw-r--r-- | xlators/features/changelog/src/changelog.c | 15 | 
1 files changed, 5 insertions, 10 deletions
diff --git a/xlators/features/changelog/src/changelog.c b/xlators/features/changelog/src/changelog.c index bb9c51a2a0b..6c7a0a80f17 100644 --- a/xlators/features/changelog/src/changelog.c +++ b/xlators/features/changelog/src/changelog.c @@ -2489,7 +2489,8 @@ changelog_cleanup_rpc (xlator_t *this, changelog_priv_t *priv)          rbuf_dtor (priv->rbuf);          /* cleanup poller thread */ -        (void) changelog_thread_cleanup (this, priv->poller); +        if (priv->poller) +                (void) changelog_thread_cleanup (this, priv->poller);  }  static int @@ -2504,13 +2505,6 @@ changelog_init_rpc (xlator_t *this, changelog_priv_t *priv)          /* initialize event selection */          changelog_init_event_selection (this, selection); -        ret = pthread_create (&priv->poller, NULL, changelog_rpc_poller, this); -        if (ret != 0) { -                gf_log (this->name, GF_LOG_ERROR, -                        "failed to spawn poller thread"); -                goto error_return; -        } -          priv->rbuf = rbuf_init (NR_ROTT_BUFFS);          if (!priv->rbuf)                  goto cleanup_thread; @@ -2526,8 +2520,9 @@ changelog_init_rpc (xlator_t *this, changelog_priv_t *priv)   cleanup_rbuf:          rbuf_dtor (priv->rbuf);   cleanup_thread: -        (void) changelog_thread_cleanup (this, priv->poller); - error_return: +        if (priv->poller) +                (void) changelog_thread_cleanup (this, priv->poller); +          return -1;  }  | 
