kernel_optimize_test/block
Nikanth Karthikesan d9c7d394a8 block: prevent possible io_context->refcount overflow
Currently io_context has an atomic_t(32-bit) as refcount.  In the case of
cfq, for each device against whcih a task does I/O, a reference to the
io_context would be taken.  And when there are multiple process sharing
io_contexts(CLONE_IO) would also have a reference to the same io_context.

Theoretically the possible maximum number of processes sharing the same
io_context + the number of disks/cfq_data referring to the same io_context
can overflow the 32-bit counter on a very high-end machine.

Even though it is an improbable case, let us make it atomic_long_t.

Signed-off-by: Nikanth Karthikesan <knikanth@suse.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
2009-06-10 23:07:15 +02:00
..
as-iosched.c block: convert to pos and nr_sectors accessors 2009-05-11 09:50:54 +02:00
blk-barrier.c block: Use accessor functions for queue limits 2009-05-22 23:22:54 +02:00
blk-core.c block: needs to set the residual length of a bidi request 2009-06-09 05:47:10 +02:00
blk-exec.c block: don't set REQ_NOMERGE unnecessarily 2009-04-28 07:37:33 +02:00
blk-integrity.c block: Do away with the notion of hardsect_size 2009-05-22 23:22:54 +02:00
blk-ioc.c block: prevent possible io_context->refcount overflow 2009-06-10 23:07:15 +02:00
blk-map.c block: Use accessor functions for queue limits 2009-05-22 23:22:54 +02:00
blk-merge.c block: Use accessor functions for queue limits 2009-05-22 23:22:54 +02:00
blk-settings.c block: Add missing bounce_pfn stacking and fix comments 2009-06-09 06:23:22 +02:00
blk-softirq.c generic-ipi: remove CSD_FLAG_WAIT 2009-02-25 14:13:44 +01:00
blk-sysfs.c block: Export I/O topology for block devices and partitions 2009-05-22 23:22:55 +02:00
blk-tag.c block: change the tag sync vs async restriction logic 2009-05-20 08:54:31 +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: fix no diskstat problem 2009-05-27 14:50:02 +02:00
bsg.c block: add rq->resid_len 2009-05-11 09:50:53 +02:00
cfq-iosched.c block: prevent possible io_context->refcount overflow 2009-06-10 23:07:15 +02:00
cmd-filter.c [SCSI] Make scsi.h independent of the rest of the scsi includes 2009-03-12 12:58:13 -05:00
compat_ioctl.c block: Use accessor functions for queue limits 2009-05-22 23:22:54 +02:00
deadline-iosched.c block: convert to pos and nr_sectors accessors 2009-05-11 09:50:54 +02:00
elevator.c block: fix a possible oops on elv_abort_queue() 2009-06-02 08:44:01 +02:00
genhd.c block: Export I/O topology for block devices and partitions 2009-05-22 23:22:55 +02:00
ioctl.c block: Use accessor functions for queue limits 2009-05-22 23:22:54 +02:00
Kconfig block: enable by default support for large devices and files on 32-bit archs 2009-04-28 07:37:33 +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 tracing/blktrace: move the tracing file to kernel/trace 2009-02-09 10:51:02 +01:00
noop-iosched.c block: get rid of elevator_t typedef 2008-12-29 08:29:50 +01:00
scsi_ioctl.c block: Use accessor functions for queue limits 2009-05-22 23:22:54 +02:00