block: Add flag for telling the IO schedulers NOT to anticipate more IO
authorJens Axboe <jens.axboe@oracle.com>
Mon, 6 Apr 2009 12:48:07 +0000 (14:48 +0200)
committerLinus Torvalds <torvalds@linux-foundation.org>
Mon, 6 Apr 2009 15:04:54 +0000 (08:04 -0700)
commitaeb6fafb8fa53266d70ca7474fcda2bdaf96524a
treeebe8e0c616a9dbfdfe5184b64d0150ea02d3d1b2
parent644b2d99b7a8677a56909a7b1fde31677eba4471
block: Add flag for telling the IO schedulers NOT to anticipate more IO

By default, CFQ will anticipate more IO from a given io context if the
previously completed IO was sync. This used to be fine, since the only
sync IO was reads and O_DIRECT writes. But with more "normal" sync writes
being used now, we don't want to anticipate for those.

Add a bio/request flag that informs the IO scheduler that this is a sync
request that we should not idle for. Introduce WRITE_ODIRECT specifically
for O_DIRECT writes, and make sure that the other sync writes set this
flag.

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
block/blk-core.c
block/cfq-iosched.c
fs/direct-io.c
include/linux/bio.h
include/linux/blkdev.h
include/linux/fs.h