aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPatrick Caulfield <pcaulfie@redhat.com>2007-01-02 17:01:05 +0000
committerSteven Whitehouse <swhiteho@redhat.com>2007-02-05 13:36:18 -0500
commit3fb4a251febe70e4c65ea8250545b391fd414d5a (patch)
tree28de58dc7a76c3e8c00a3cc4d1005196e55fe475
parent[GFS2] Fix change nlink deadlock (diff)
downloadlinux-dev-3fb4a251febe70e4c65ea8250545b391fd414d5a.tar.xz
linux-dev-3fb4a251febe70e4c65ea8250545b391fd414d5a.zip
[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 <pcaulfie@redhat.com> Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
-rw-r--r--fs/dlm/lowcomms-sctp.c4
-rw-r--r--fs/dlm/lowcomms-tcp.c4
2 files changed, 4 insertions, 4 deletions
diff --git a/fs/dlm/lowcomms-sctp.c b/fs/dlm/lowcomms-sctp.c
index fe158d7a9285..0940a805b3d7 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 3b224733f18b..18b91c65bdb3 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();