Avoid a possible busywait.


 25-akpm/fs/direct-io.c |    4 +++-
 1 files changed, 3 insertions(+), 1 deletion(-)

diff -puN fs/direct-io.c~dio-aio-fixes-fixes fs/direct-io.c
--- 25/fs/direct-io.c~dio-aio-fixes-fixes	Tue Nov 25 17:05:59 2003
+++ 25-akpm/fs/direct-io.c	Tue Nov 25 17:05:59 2003
@@ -1011,8 +1011,10 @@ direct_io_worker(int rw, struct kiocb *i
 			 * before returning to fallback on buffered I/O
 			 */
 			set_current_state(TASK_UNINTERRUPTIBLE);
-			while (atomic_read(&dio->bio_count))
+			while (atomic_read(&dio->bio_count)) {
 				io_schedule();
+				set_current_state(TASK_UNINTERRUPTIBLE);
+			}
 			set_current_state(TASK_RUNNING);
 			dio->waiter = NULL;
 		}

_