--- old/drivers/block/ll_rw_blk.c 2003-05-14 23:11:08.000000000 +0200 +++ new/drivers/block/ll_rw_blk.c 2003-05-28 13:04:34.000000000 +0200 @@ -829,9 +829,10 @@ void blkdev_release_request(struct reque */ if (q) { list_add(&req->queue, &q->rq[rw].free); - if (++q->rq[rw].count >= q->batch_requests && - waitqueue_active(&q->wait_for_requests[rw])) + if (++q->rq[rw].count >= q->batch_requests) { + smp_mb(); wake_up(&q->wait_for_requests[rw]); + } } }