linux-uconsole/block
Martin K. Petersen 9b2ff973b0 block: Backport of various I/O topology fixes from 2.6.33 and 2.6.34
block: Backport of various I/O topology fixes from 2.6.33 and 2.6.34

The stacking code incorrectly scaled up the data offset in some cases
causing misaligned devices to report alignment.  Rewrite the stacking
algorithm to remedy this.  

(Upstream commit 9504e0864b)

The top device misalignment flag would not be set if the added bottom
device was already misaligned as opposed to causing a stacking failure.
    
Also massage the reporting so that an error is only returned if adding
the bottom device caused the misalignment.  I.e. don't return an error
if the top is already flagged as misaligned.

(Upstream commit fe0b393f2c)


lcm() was defined to take integer-sized arguments.  The supplied
arguments are multiplied, however, causing us to overflow given
sufficiently large input.  That in turn led to incorrect optimal I/O
size reporting in some cases.  Switch lcm() over to unsigned long
similar to gcd() and move the function from blk-settings.c to lib.

Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Reviewed-by: Mike Snitzer <snitzer@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-04-01 15:58:56 -07: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: Use accessor functions for queue limits 2009-05-22 23:22:54 +02:00
blk-merge.c block: Seperate read and write statistics of in_flight requests v2 2009-10-06 20:16:55 +02:00
blk-settings.c block: Backport of various I/O topology fixes from 2.6.33 and 2.6.34 2010-04-01 15:58:56 -07: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: clean up misc stuff after block layer timeout conversion 2009-04-28 07:37:34 +02:00
blk.h block: implement mixed merge of different failfast requests 2009-09-11 14:33:30 +02:00
bsg.c Driver-Core: extend devnode callbacks to provide permissions 2009-09-19 12:50:38 -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: call blk_scsi_ioctl_init() 2009-07-10 20:31:53 +02:00