dm-io.c: Get rid of global queues unplug. [Jens Axboe] --- diff/drivers/md/dm-io.c 2004-03-16 11:47:22.682311696 +0000 +++ source/drivers/md/dm-io.c 2004-03-16 11:47:24.487037336 +0000 @@ -491,11 +491,14 @@ static void do_region(int rw, unsigned i static void dispatch_io(int rw, unsigned int num_regions, struct io_region *where, struct dpages *dp, - struct io *io) + struct io *io, int sync) { int i; struct dpages old_pages = *dp; + if (sync) + rw |= BIO_RW_SYNC; + /* * For multiple regions we need to be careful to rewind * the dp object for each call to do_region. @@ -524,8 +527,7 @@ int sync_io(unsigned int num_regions, st atomic_set(&io.count, 1); /* see dispatch_io() */ io.sleeper = current; - dispatch_io(rw, num_regions, where, dp, &io); - blk_run_queues(); + dispatch_io(rw, num_regions, where, dp, &io, 1); while (1) { set_current_state(TASK_UNINTERRUPTIBLE); @@ -555,7 +557,7 @@ int async_io(unsigned int num_regions, s io->callback = fn; io->context = context; - dispatch_io(rw, num_regions, where, dp, io); + dispatch_io(rw, num_regions, where, dp, io, 0); return 0; }