linux-uconsole/block
Martin K. Petersen dce52eace9 block: Deprecate QUEUE_FLAG_CLUSTER and use queue_limits instead
commit e692cb668f upstream.

When stacking devices, a request_queue is not always available. This
forced us to have a no_cluster flag in the queue_limits that could be
used as a carrier until the request_queue had been set up for a
metadevice.

There were several problems with that approach. First of all it was up
to the stacking device to remember to set queue flag after stacking had
completed. Also, the queue flag and the queue limits had to be kept in
sync at all times. We got that wrong, which could lead to us issuing
commands that went beyond the max scatterlist limit set by the driver.

The proper fix is to avoid having two flags for tracking the same thing.
We deprecate QUEUE_FLAG_CLUSTER and use the queue limit directly in the
block layer merging functions. The queue_limit 'no_cluster' is turned
into 'cluster' to avoid double negatives and to ease stacking.
Clustering defaults to being enabled as before. The queue flag logic is
removed from the stacking function, and explicitly setting the cluster
flag is no longer necessary in DM and MD.

Reported-by: Ed Lin <ed.lin@promise.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Acked-by: Mike Snitzer <snitzer@redhat.com>
Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-01-07 14:43:18 -08:00
..
as-iosched.c percpu: clean up percpu variable definitions 2009-06-24 15:13:48 +09:00
blk-barrier.c block: allow large discard requests 2009-10-01 21:19:34 +02:00
blk-core.c block: silently error unsupported empty barriers too 2009-10-24 14:14:31 +02:00
blk-exec.c block: don't set REQ_NOMERGE unnecessarily 2009-04-28 07:37:33 +02:00
blk-integrity.c block: fix improper kobject release in blk_integrity_unregister 2009-07-28 09:11:14 +02:00
blk-ioc.c block: prevent possible io_context->refcount overflow 2009-06-10 23:07:15 +02:00
blk-iopoll.c block: use interrupts disabled version of raise_softirq_irqoff() 2009-09-11 14:33:32 +02:00
blk-map.c block: check for proper length of iov entries in blk_rq_map_user_iov() 2010-12-09 13:26:30 -08:00
blk-merge.c block: Deprecate QUEUE_FLAG_CLUSTER and use queue_limits instead 2011-01-07 14:43:18 -08:00
blk-settings.c block: Deprecate QUEUE_FLAG_CLUSTER and use queue_limits instead 2011-01-07 14:43:18 -08:00
blk-softirq.c generic-ipi: remove CSD_FLAG_WAIT 2009-02-25 14:13:44 +01:00
blk-sysfs.c Add missing blk_trace_remove_sysfs to be in pair with blk_trace_init_sysfs 2009-10-01 21:15:46 +02:00
blk-tag.c block: use proper BLK_RW_ASYNC in blk_queue_start_tag() 2009-10-06 20:19:02 +02:00
blk-timeout.c block: ensure jiffies wrap is handled correctly in blk_rq_timed_out_timer 2010-05-12 14:57:05 -07:00
blk.h block: implement mixed merge of different failfast requests 2009-09-11 14:33:30 +02:00
bsg.c bsg: fix incorrect device_status value 2010-10-28 21:44:11 -07:00
cfq-iosched.c cfq-iosched: limit coop preemption 2009-11-03 20:25:02 +01:00
compat_ioctl.c block: Topology ioctls 2009-10-03 20:52:01 +02:00
deadline-iosched.c block: convert to pos and nr_sectors accessors 2009-05-11 09:50:54 +02:00
elevator.c elv_iosched_store(): fix strstrip() misuse 2009-10-09 08:48:08 +02:00
genhd.c block: Seperate read and write statistics of in_flight requests v2 2009-10-06 20:16:55 +02:00
ioctl.c block: Topology ioctls 2009-10-03 20:52:01 +02:00
Kconfig Make SCSI SG v4 driver enabled by default and remove EXPERIMENTAL dependency, since udev depends on BSG 2009-08-04 22:10:17 +02:00
Kconfig.iosched update I/O sched Kconfig help texts - CFQ is now default, not AS. 2007-02-17 20:08:22 +01:00
Makefile block: add blk-iopoll, a NAPI like approach for block devices 2009-09-11 14:33:31 +02:00
noop-iosched.c block: get rid of elevator_t typedef 2008-12-29 08:29:50 +01:00
scsi_ioctl.c block: take care not to overflow when calculating total iov length 2010-12-09 13:26:30 -08:00