Hello, This patchset is combination of the following three patchset. [1] block: replace barrier with sequenced flush [2] block: convert to REQ_FLUSH/FUA [3] replace barriers with explicit flush / FUA usage Changes from the previous postings are, * Rebased on top of 2.6.36-rc2 (502adf5778f4151dcba3f64dd6ed322151f3712c) * Acked/Reviewed-by's added. * ide-remove-unnecessary-blk_queue_flushing-test-in-do_ide_request patch added which removes blk_queue_flushing(). * BH flags, which are no longer necessary on 2.6.36-rc2, are dropped from fs-block-propagate-REQ_FLUSH-FUA-interface-to-upper-layers and the patch is collapsed into block-implement-REQ_FLUSH-FUA-based-interface-for-FLUSH-FUA-requests. * block-filter-flush-bio-s-in-__generic_make_request added. This makes sure make_request based drivers which don't implement cache flushes don't see REQ_FLUSH/FUA requests. * block-simplify-queue_next_fseq added. * REQ_FUA support dropped from virtio/lguest conversion as suggested by Christoph. * md conversion updated as suggested by Neil Brown. * dm conversion is excluded for now. * block-remove-the-BLKDEV_IFL_BARRIER-flag patch now also removes DISCARD_SECURE. * block-remove-the-write-barrier-flag patch excluded for now (pending on dm conversion). I've audited all make_request drivers and after this patchset only blktrace, dm, drbd and xen need more work. I'll work on blktrace and dm but leave xen and drbd for the respective maintainers. Build tested w/ allmodconfig and lightly tested w/ ext4 and xfs. This patchst contains the following thirty patches. 0001-ide-remove-unnecessary-blk_queue_flushing-test-in-do.patch 0002-block-loop-queue-ordered-mode-should-be-DRAIN_FLUSH.patch 0003-block-kill-QUEUE_ORDERED_BY_TAG.patch 0004-block-deprecate-barrier-and-replace-blk_queue_ordere.patch 0005-block-remove-spurious-uses-of-REQ_HARDBARRIER.patch 0006-block-misc-cleanups-in-barrier-code.patch 0007-block-drop-barrier-ordering-by-queue-draining.patch 0008-block-rename-blk-barrier.c-to-blk-flush.c.patch 0009-block-rename-barrier-ordered-to-flush.patch 0010-block-implement-REQ_FLUSH-FUA-based-interface-for-FL.patch 0011-block-filter-flush-bio-s-in-__generic_make_request.patch 0012-block-use-REQ_FLUSH-in-blkdev_issue_flush.patch 0013-block-simplify-queue_next_fseq.patch 0014-block-loop-implement-REQ_FLUSH-FUA-support.patch 0015-virtio_blk-drop-REQ_HARDBARRIER-support.patch 0016-lguest-replace-VIRTIO_F_BARRIER-support-with-VIRTIO_.patch 0017-md-implment-REQ_FLUSH-FUA-support.patch 0018-block-pass-gfp_mask-and-flags-to-sb_issue_discard.patch 0019-xfs-replace-barriers-with-explicit-flush-FUA-usage.patch 0020-btrfs-replace-barriers-with-explicit-flush-FUA-usage.patch 0021-gfs2-replace-barriers-with-explicit-flush-FUA-usage.patch 0022-reiserfs-replace-barriers-with-explicit-flush-FUA-us.patch 0023-nilfs2-replace-barriers-with-explicit-flush-FUA-usag.patch 0024-jbd-replace-barriers-with-explicit-flush-FUA-usage.patch 0025-jbd2-replace-barriers-with-explicit-flush-FUA-usage.patch 0026-ext4-do-not-send-discards-as-barriers.patch 0027-fat-do-not-send-discards-as-barriers.patch 0028-swap-do-not-send-discards-as-barriers.patch 0029-block-remove-the-BLKDEV_IFL_BARRIER-flag.patch 0030-block-remove-the-BH_Eopnotsupp-flag.patch and available in the following git tree. git://git.kernel.org/pub/scm/linux/kernel/git/tj/misc.git flush-fua and contain the following changes. Documentation/lguest/lguest.c | 29 -- block/Makefile | 2 block/blk-barrier.c | 350 ------------------------------------ block/blk-core.c | 68 +++--- block/blk-flush.c | 242 ++++++++++++++++++++++++ block/blk-lib.c | 18 - block/blk-settings.c | 20 ++ block/blk.h | 8 block/elevator.c | 79 -------- drivers/block/brd.c | 1 drivers/block/loop.c | 20 +- drivers/block/osdblk.c | 5 drivers/block/pktcdvd.c | 1 drivers/block/ps3disk.c | 2 drivers/block/virtio_blk.c | 37 --- drivers/block/xen-blkfront.c | 47 +--- drivers/ide/ide-disk.c | 13 - drivers/ide/ide-io.c | 13 - drivers/md/dm.c | 2 drivers/md/linear.c | 4 drivers/md/md.c | 117 ++---------- drivers/md/md.h | 23 -- drivers/md/multipath.c | 4 drivers/md/raid0.c | 4 drivers/md/raid1.c | 175 ++++++------------ drivers/md/raid1.h | 2 drivers/md/raid10.c | 7 drivers/md/raid5.c | 43 ++-- drivers/md/raid5.h | 1 drivers/mmc/card/queue.c | 1 drivers/s390/block/dasd.c | 1 drivers/scsi/aic7xxx_old.c | 21 -- drivers/scsi/libsas/sas_scsi_host.c | 13 - drivers/scsi/sd.c | 18 - fs/btrfs/disk-io.c | 19 - fs/btrfs/extent-tree.c | 2 fs/btrfs/volumes.c | 4 fs/btrfs/volumes.h | 1 fs/buffer.c | 7 fs/ext4/mballoc.c | 3 fs/fat/fatent.c | 4 fs/fat/misc.c | 5 fs/gfs2/log.c | 19 - fs/gfs2/rgrp.c | 5 fs/jbd/commit.c | 30 --- fs/jbd2/commit.c | 43 ---- fs/nilfs2/super.c | 10 - fs/nilfs2/the_nilfs.c | 7 fs/reiserfs/journal.c | 106 ++-------- fs/xfs/linux-2.6/xfs_buf.c | 16 - fs/xfs/linux-2.6/xfs_buf.h | 11 - fs/xfs/linux-2.6/xfs_trace.h | 1 fs/xfs/xfs_log.c | 13 - include/linux/blk_types.h | 4 include/linux/blkdev.h | 85 +------- include/linux/buffer_head.h | 2 include/linux/fs.h | 27 +- include/scsi/scsi_tcq.h | 6 mm/swapfile.c | 9 59 files changed, 585 insertions(+), 1245 deletions(-) Thanks. -- tejun [1] http://thread.gmane.org/gmane.linux.kernel/1022363 [2] http://thread.gmane.org/gmane.linux.raid/29100 [3] http://thread.gmane.org/gmane.linux.file-systems/44957 -- dm-devel mailing list dm-devel@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/dm-devel