[dm-devel] [PATCHSET 2.6.36-rc2] block, fs: replace HARDBARRIER with FLUSH/FUA

Tejun Heo tj at kernel.org
Wed Aug 25 15:47:17 UTC 2010


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




More information about the dm-devel mailing list