فهرست منبع

dlm: use single thread workqueues

The recent commit to use cmwq for send and recv threads
dcce240ead802d42b1e45ad2fcb2ed4a399cb255 introduced problems,
apparently due to multiple workqueue threads.  Single threads
make the problems go away, so return to that until we fully
understand the concurrency issues with multiple threads.

Signed-off-by: David Teigland <teigland@redhat.com>
David Teigland 14 سال پیش
والد
کامیت
6b155c8fd4
1فایلهای تغییر یافته به همراه2 افزوده شده و 4 حذف شده
  1. 2 4
      fs/dlm/lowcomms.c

+ 2 - 4
fs/dlm/lowcomms.c

@@ -1468,15 +1468,13 @@ static void work_stop(void)
 
 
 static int work_start(void)
 static int work_start(void)
 {
 {
-	recv_workqueue = alloc_workqueue("dlm_recv", WQ_MEM_RECLAIM |
-					 WQ_HIGHPRI | WQ_FREEZEABLE, 0);
+	recv_workqueue = create_singlethread_workqueue("dlm_recv");
 	if (!recv_workqueue) {
 	if (!recv_workqueue) {
 		log_print("can't start dlm_recv");
 		log_print("can't start dlm_recv");
 		return -ENOMEM;
 		return -ENOMEM;
 	}
 	}
 
 
-	send_workqueue = alloc_workqueue("dlm_send", WQ_MEM_RECLAIM |
-					 WQ_HIGHPRI | WQ_FREEZEABLE, 0);
+	send_workqueue = create_singlethread_workqueue("dlm_send");
 	if (!send_workqueue) {
 	if (!send_workqueue) {
 		log_print("can't start dlm_send");
 		log_print("can't start dlm_send");
 		destroy_workqueue(recv_workqueue);
 		destroy_workqueue(recv_workqueue);