diff options
author | Ryan Ding <ryan.ding@open-fs.com> | 2016-08-23 17:42:44 +0800 |
---|---|---|
committer | Aravinda VK <avishwan@redhat.com> | 2016-09-02 03:24:41 -0700 |
commit | 1f1850ae79a836f1de783c990e575a0d29e26dee (patch) | |
tree | b84336f64cb70953f5c72bfd4946ffa87f005209 /xlators/features/changelog | |
parent | befae0b48729894282b5b8b174907e24779c3442 (diff) |
features/changelog: fix a segment fault in changelog_cleanup_dispatchers
the arg 'count' in changelog_cleanup_dispatchers means the thread count
to cleanup, so the cleanup loop should start with count-1, not count.
change the invoke place also.
Change-Id: Ia00853a2e0c5e01e145f60048b1f0ac05f2440ab
BUG: 1369397
Signed-off-by: Ryan Ding <ryan.ding@open-fs.com>
Reviewed-on: http://review.gluster.org/15293
Smoke: Gluster Build System <jenkins@build.gluster.org>
Reviewed-by: Kotresh HR <khiremat@redhat.com>
Tested-by: Kotresh HR <khiremat@redhat.com>
Reviewed-by: Milind Changire <mchangir@redhat.com>
NetBSD-regression: NetBSD Build System <jenkins@build.gluster.org>
CentOS-regression: Gluster Build System <jenkins@build.gluster.org>
Diffstat (limited to 'xlators/features/changelog')
-rw-r--r-- | xlators/features/changelog/src/changelog-rpc.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/xlators/features/changelog/src/changelog-rpc.c b/xlators/features/changelog/src/changelog-rpc.c index 4bc24203118..1d10eccf84f 100644 --- a/xlators/features/changelog/src/changelog-rpc.c +++ b/xlators/features/changelog/src/changelog-rpc.c @@ -18,7 +18,7 @@ static void changelog_cleanup_dispatchers (xlator_t *this, changelog_priv_t *priv, int count) { - for (; count >= 0; count--) { + for (count--; count >= 0; count--) { (void) changelog_thread_cleanup (this, priv->ev_dispatcher[count]); } @@ -112,7 +112,7 @@ changelog_init_rpc_threads (xlator_t *this, changelog_priv_t *priv, ret = pthread_create (&priv->ev_dispatcher[j], NULL, changelog_ev_dispatch, conn); if (ret != 0) { - changelog_cleanup_dispatchers (this, priv, --j); + changelog_cleanup_dispatchers (this, priv, j); break; } } |