Call elv_kick_page() to notify the elevator of a pending read. Requests of priority IOPRIO_CLASS_IDLE are ignored. Signed-off-by: Wu Fengguang --- --- linux-2.6.17-rc5-mm3.orig/block/ll_rw_blk.c +++ linux-2.6.17-rc5-mm3/block/ll_rw_blk.c @@ -1619,6 +1619,9 @@ static void blk_backing_dev_unplug(struc { request_queue_t *q = bdi->unplug_io_data; + if (IOPRIO_PRIO_CLASS(current->ioprio) != IOPRIO_CLASS_IDLE) + elv_kick_page(q, page); + /* * devices don't necessarily have an ->unplug_fn defined */ --- linux-2.6.17-rc5-mm3.orig/fs/buffer.c +++ linux-2.6.17-rc5-mm3/fs/buffer.c @@ -63,8 +63,9 @@ static int sync_buffer(void *word) smp_mb(); bd = bh->b_bdev; - if (bd) - blk_run_address_space(bd->bd_inode->i_mapping); + if (bd && bd->bd_inode && bd->bd_inode->i_mapping) + blk_run_backing_dev(bd->bd_inode->i_mapping->backing_dev_info, + bh->b_page); io_schedule(); return 0; } --