diff -urN 2.4.2/mm/filemap.c 2.4.2aa/mm/filemap.c --- 2.4.2/mm/filemap.c Wed Feb 21 18:45:13 2001 +++ 2.4.2aa/mm/filemap.c Wed Feb 21 18:46:04 2001 @@ -610,11 +610,10 @@ add_wait_queue(&page->wait, &wait); do { - sync_page(page); set_task_state(tsk, TASK_UNINTERRUPTIBLE); if (!PageLocked(page)) break; - run_task_queue(&tq_disk); + sync_page(page); schedule(); } while (PageLocked(page)); tsk->state = TASK_RUNNING; @@ -632,12 +631,10 @@ add_wait_queue_exclusive(&page->wait, &wait); for (;;) { - sync_page(page); set_task_state(tsk, TASK_UNINTERRUPTIBLE); if (PageLocked(page)) { - run_task_queue(&tq_disk); + sync_page(page); schedule(); - continue; } if (!TryLockPage(page)) break;