From: Patrick Caulfield Date: Tue, 2 Jan 2007 17:01:05 +0000 (+0000) Subject: [DLM] Fix schedule() calls X-Git-Tag: v2.6.21-rc1~92^2~35^2~45 X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=3fb4a251febe70e4c65ea8250545b391fd414d5a;p=linux-2.6 [DLM] Fix schedule() calls I was a little over-enthusiastic turning schedule() calls int cond_sched() when fixing the DLM for Andrew Morton. These four should really be calls to schedule() or the dlm can busy-wait. Signed-Off-By: Patrick Caulfield Signed-off-by: Steven Whitehouse --- diff --git a/fs/dlm/lowcomms-sctp.c b/fs/dlm/lowcomms-sctp.c index fe158d7a92..0940a805b3 100644 --- a/fs/dlm/lowcomms-sctp.c +++ b/fs/dlm/lowcomms-sctp.c @@ -1109,7 +1109,7 @@ static int dlm_recvd(void *data) set_current_state(TASK_INTERRUPTIBLE); add_wait_queue(&lowcomms_recv_wait, &wait); if (!test_bit(CF_READ_PENDING, &sctp_con.flags)) - cond_resched(); + schedule(); remove_wait_queue(&lowcomms_recv_wait, &wait); set_current_state(TASK_RUNNING); @@ -1141,7 +1141,7 @@ static int dlm_sendd(void *data) while (!kthread_should_stop()) { set_current_state(TASK_INTERRUPTIBLE); if (write_list_empty()) - cond_resched(); + schedule(); set_current_state(TASK_RUNNING); if (sctp_con.eagain_flag) { diff --git a/fs/dlm/lowcomms-tcp.c b/fs/dlm/lowcomms-tcp.c index 3b224733f1..18b91c65bd 100644 --- a/fs/dlm/lowcomms-tcp.c +++ b/fs/dlm/lowcomms-tcp.c @@ -996,7 +996,7 @@ static int dlm_recvd(void *data) while (!kthread_should_stop()) { set_current_state(TASK_INTERRUPTIBLE); if (read_list_empty()) - cond_resched(); + schedule(); set_current_state(TASK_RUNNING); process_sockets(); @@ -1030,7 +1030,7 @@ static int dlm_sendd(void *data) while (!kthread_should_stop()) { set_current_state(TASK_INTERRUPTIBLE); if (write_and_state_lists_empty()) - cond_resched(); + schedule(); set_current_state(TASK_RUNNING); process_state_queue();