|
|
3604df |
From 31d0ef0a4fc9d8028f45c9306df0430a0767a33f Mon Sep 17 00:00:00 2001
|
|
|
3604df |
From: Rajesh Joseph <rjoseph@redhat.com>
|
|
|
3604df |
Date: Mon, 14 Nov 2016 15:40:32 +0530
|
|
|
3604df |
Subject: [PATCH 189/206] libglusterfs:Now mempool is added to ctx pool list
|
|
|
3604df |
under a lock
|
|
|
3604df |
|
|
|
3604df |
mempool is added to ctx pool list without any lock. This can cause undefined
|
|
|
3604df |
behaviour in case of multithreaded environment.
|
|
|
3604df |
|
|
|
3604df |
Fix: modify the list only under ctx->lock
|
|
|
3604df |
|
|
|
3604df |
> Reviewed-on: http://review.gluster.org/15842
|
|
|
3604df |
> NetBSD-regression: NetBSD Build System <jenkins@build.gluster.org>
|
|
|
3604df |
> Smoke: Gluster Build System <jenkins@build.gluster.org>
|
|
|
3604df |
> CentOS-regression: Gluster Build System <jenkins@build.gluster.org>
|
|
|
3604df |
> Reviewed-by: Raghavendra Talur <rtalur@redhat.com>
|
|
|
3604df |
> Reviewed-by: Shyamsundar Ranganathan <srangana@redhat.com>
|
|
|
3604df |
> Reviewed-by: Poornima G <pgurusid@redhat.com>
|
|
|
3604df |
> Reviewed-by: Niels de Vos <ndevos@redhat.com>
|
|
|
3604df |
|
|
|
3604df |
Change-Id: I7bdbb3db48a899bb0e41427e149b13c0facaedba
|
|
|
3604df |
Signed-off-by: Rajesh Joseph <rjoseph@redhat.com>
|
|
|
3604df |
BUG: 1387558
|
|
|
3604df |
Reviewed-on: https://code.engineering.redhat.com/gerrit/90965
|
|
|
3604df |
Reviewed-by: Atin Mukherjee <amukherj@redhat.com>
|
|
|
3604df |
---
|
|
|
3604df |
api/src/glfs.c | 2 --
|
|
|
3604df |
libglusterfs/src/mem-pool.c | 6 +++++-
|
|
|
3604df |
2 files changed, 5 insertions(+), 3 deletions(-)
|
|
|
3604df |
|
|
|
3604df |
diff --git a/api/src/glfs.c b/api/src/glfs.c
|
|
|
3604df |
index ef713f9..307e22c 100644
|
|
|
3604df |
--- a/api/src/glfs.c
|
|
|
3604df |
+++ b/api/src/glfs.c
|
|
|
3604df |
@@ -149,8 +149,6 @@ glusterfs_ctx_defaults_init (glusterfs_ctx_t *ctx)
|
|
|
3604df |
LOCK_INIT (&pool->lock);
|
|
|
3604df |
ctx->pool = pool;
|
|
|
3604df |
|
|
|
3604df |
- LOCK_INIT (&ctx->lock);
|
|
|
3604df |
-
|
|
|
3604df |
ret = 0;
|
|
|
3604df |
err:
|
|
|
3604df |
if (ret && pool) {
|
|
|
3604df |
diff --git a/libglusterfs/src/mem-pool.c b/libglusterfs/src/mem-pool.c
|
|
|
3604df |
index 78fecec..88fbdf5 100644
|
|
|
3604df |
--- a/libglusterfs/src/mem-pool.c
|
|
|
3604df |
+++ b/libglusterfs/src/mem-pool.c
|
|
|
3604df |
@@ -422,7 +422,11 @@ mem_pool_new_fn (unsigned long sizeof_type,
|
|
|
3604df |
if (!ctx)
|
|
|
3604df |
goto out;
|
|
|
3604df |
|
|
|
3604df |
- list_add (&mem_pool->global_list, &ctx->mempool_list);
|
|
|
3604df |
+ LOCK (&ctx->lock);
|
|
|
3604df |
+ {
|
|
|
3604df |
+ list_add (&mem_pool->global_list, &ctx->mempool_list);
|
|
|
3604df |
+ }
|
|
|
3604df |
+ UNLOCK (&ctx->lock);
|
|
|
3604df |
|
|
|
3604df |
out:
|
|
|
3604df |
return mem_pool;
|
|
|
3604df |
--
|
|
|
3604df |
2.9.3
|
|
|
3604df |
|