From: MORITA Kazutaka <morita.kazut...@lab.ntt.co.jp>

The current recovery code are not expected to work in multi threads.  However,
cluster_enable_recover() can queue a new recovery work even if there is a
running one.  To avoid this problem, this patch uses an ordered work queue for
the recovery work.

Signed-off-by: MORITA Kazutaka <morita.kazut...@lab.ntt.co.jp>
---
 sheep/sheep.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sheep/sheep.c b/sheep/sheep.c
index a7e3820..05fced5 100644
--- a/sheep/sheep.c
+++ b/sheep/sheep.c
@@ -338,7 +338,7 @@ static int init_work_queues(void)
 
        sys->gateway_wqueue = init_work_queue("gway", WQ_UNLIMITED);
        sys->io_wqueue = init_work_queue("io", WQ_UNLIMITED);
-       sys->recovery_wqueue = init_work_queue("rw", WQ_UNLIMITED);
+       sys->recovery_wqueue = init_ordered_work_queue("rw");
        sys->deletion_wqueue = init_ordered_work_queue("deletion");
        sys->block_wqueue = init_ordered_work_queue("block");
        sys->sockfd_wqueue = init_ordered_work_queue("sockfd");
-- 
1.7.9.5

-- 
sheepdog mailing list
sheepdog@lists.wpkg.org
http://lists.wpkg.org/mailman/listinfo/sheepdog

Reply via email to