Remove the remaining sleep_on() calls from JBD.


 fs/jbd/commit.c  |   17 ++++++++++++-----
 fs/jbd/journal.c |    8 +++-----
 2 files changed, 15 insertions(+), 10 deletions(-)

diff -puN fs/jbd/commit.c~jbd-250-remove-sleep_on fs/jbd/commit.c
--- 25/fs/jbd/commit.c~jbd-250-remove-sleep_on	2003-05-24 19:59:03.000000000 -0700
+++ 25-akpm/fs/jbd/commit.c	2003-05-24 20:03:44.000000000 -0700
@@ -85,11 +85,18 @@ void journal_commit_transaction(journal_
 
 	spin_lock(&commit_transaction->t_handle_lock);
 	while (commit_transaction->t_updates != 0) {
-		spin_unlock(&commit_transaction->t_handle_lock);
-		unlock_journal(journal);
-		sleep_on(&journal->j_wait_updates);
-		lock_journal(journal);
-		spin_lock(&commit_transaction->t_handle_lock);
+		DEFINE_WAIT(wait);
+
+		prepare_to_wait(&journal->j_wait_updates, &wait,
+					TASK_UNINTERRUPTIBLE);
+		if (commit_transaction->t_updates) {
+			spin_unlock(&commit_transaction->t_handle_lock);
+			unlock_journal(journal);
+			schedule();
+			lock_journal(journal);
+			spin_lock(&commit_transaction->t_handle_lock);
+		}
+		finish_wait(&journal->j_wait_updates, &wait);
 	}
 	spin_unlock(&commit_transaction->t_handle_lock);
 
diff -puN fs/jbd/journal.c~jbd-250-remove-sleep_on fs/jbd/journal.c
--- 25/fs/jbd/journal.c~jbd-250-remove-sleep_on	2003-05-24 19:59:03.000000000 -0700
+++ 25-akpm/fs/jbd/journal.c	2003-05-24 19:59:03.000000000 -0700
@@ -247,10 +247,8 @@ loop:
 
 static void journal_start_thread(journal_t *journal)
 {
-	kernel_thread(kjournald, (void *) journal,
-		      CLONE_VM | CLONE_FS | CLONE_FILES);
-	while (!journal->j_task)
-		sleep_on(&journal->j_wait_done_commit);
+	kernel_thread(kjournald, journal, CLONE_VM|CLONE_FS|CLONE_FILES);
+	wait_event(journal->j_wait_done_commit, journal->j_task != 0);
 }
 
 static void journal_kill_thread(journal_t *journal)
@@ -259,7 +257,7 @@ static void journal_kill_thread(journal_
 
 	while (journal->j_task) {
 		wake_up(&journal->j_wait_commit);
-		sleep_on(&journal->j_wait_done_commit);
+		wait_event(journal->j_wait_done_commit, journal->j_task == 0);
 	}
 }
 

_