block: BARRIER request should imply SYNC
authorChristoph Hellwig <hch@lst.de>
Thu, 17 Jun 2010 06:54:16 +0000 (08:54 +0200)
committerJens Axboe <jaxboe@fusionio.com>
Sat, 7 Aug 2010 16:15:44 +0000 (18:15 +0200)
commit41f2df62894bfcd3bf868af916b32b90aa7168dc
treeb582399975cd1cf19aa8b6e67623f252b7cada85
parent01b6b67edabe864391163dc6405e2cb454f108db
block: BARRIER request should imply SYNC

A barrier request should by defintion have priority in get_request
and let the queue be unplugged immediately as it's blocking all forward
progress due to the queue draining.

Most filesystems already get this implicitly by the way how submit_bh
treats the buffer_ordered flag, and gfs2 sets it explicitly.  But btrfs
and XFS are still forgetting to set the flag, as is blkdev_issue_flush
and some places in DM/MD.

For XFS on metadata heavy workloads this gives a consistent speedup
in the 2-3% range.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
fs/gfs2/log.c
include/linux/fs.h