summaryrefslogtreecommitdiffstats
path: root/block
Commit message (Collapse)AuthorAgeFilesLines
* [PATCH] fix rmmod problems with elevator attributes, clean them upAl Viro2006-03-184-168/+67
|
* [PATCH] elevator_t lifetime rules and sysfs fixesAl Viro2006-03-184-201/+152
|
* [PATCH] noise removal: cfq-iosched.cAl Viro2006-03-181-14/+2
| | | | Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
* [PATCH] don't bother with refcounting for cfq_dataAl Viro2006-03-181-21/+7
| | | | Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
* [PATCH] fix sysfs interaction and lifetime rules handling for queuesAl Viro2006-03-181-25/+58
|
* [PATCH] fix cfq_get_queue()/ioprio_set(2) racesAl Viro2006-03-181-4/+12
| | | | Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
* [PATCH] deal with rmmod/put_io_context() racesAl Viro2006-03-183-1/+32
| | | | Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
* [PATCH] stop elv_unregister() from rogering other iosched's data, fix lockingAl Viro2006-03-183-15/+24
| | | | Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
* [PATCH] stop cfq from pinning queue downAl Viro2006-03-181-4/+0
| | | | Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
* [PATCH] make cfq_exit_queue() prune the cfq_io_context for that queueAl Viro2006-03-181-1/+58
| | | | Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
* [PATCH] fix the exclusion for ioprio_set()Al Viro2006-03-181-1/+13
| | | | Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
* [PATCH] keep sync and async cfq_queue separateAl Viro2006-03-181-10/+26
| | | | Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
* [PATCH] switch to use of ->key to get cfq_data by cfq_io_contextAl Viro2006-03-181-11/+15
| | | | Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
* [PATCH] stop leaking cfq_data in cfq_set_request()Al Viro2006-03-181-2/+0
| | | | | | | | We don't need to pin ->key down; ->cfqq->cfqd will do that for us. Incidentally, that stops the leak we had - that reference was never dropped. Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
* [PATCH] fix cfq hash lookupsAl Viro2006-03-181-1/+1
| | | | | | | | If somebody does a hash lookup for cfq_queue while ioprio of an async queue is elevated, they shouldn't end up stuck with lowered ioprio when we go back. Fix is to use ->org_ioprio{,class} in hash lookups. Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
* [PATCH] fix locking in queue_requests_store()Al Viro2006-03-181-3/+7
| | | | Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
* [PATCH] fix double-free in blk_init_queue_node()Al Viro2006-03-181-5/+5
| | | | Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
* [PATCH] block: disable block layer bouncing for most memory on 64bit systemsAndi Kleen2006-03-081-14/+19
| | | | | | | | | | | | The low level PCI DMA mapping functions should handle it in most cases. This should fix problems with depleting the DMA zone early. The old code used precious GFP_DMA memory in many cases where it was not needed. Signed-off-by: Andi Kleen <ak@suse.de> Cc: Jens Axboe <axboe@suse.de> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [PATCH] cfq-iosched: slice expiry fixupsJens Axboe2006-02-281-91/+60
| | | | | | | | | | | | | During testing of SLES10, we encountered a hang in the CFQ io scheduler. Turns out the deferred slice expiry logic is buggy, so remove that for now. We could be left with an idle queue that would never wake up. So kill that logic, always expire immediately. Also fix a potential timer race condition. Patch looks bigger than it is, because it moves a function. Signed-off-by: Jens Axboe <axboe@suse.de> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* Merge branch 'for-linus' of git://brick.kernel.dk/data/git/linux-2.6-blockLinus Torvalds2006-02-081-0/+3
|\
| * [PATCH] blk: Fix SG_IO ioctl failure retry loopingJens Axboe2006-02-081-0/+3
| | | | | | | | | | | | | | | | | | | | When issuing an SG_IO ioctl through sd that resulted in an unrecoverable error, a nearly infinite retry loop was discovered. This is due to the fact that the block layer SG_IO code is not setting up rq->retries. This patch also fixes up the sg_scsi_ioctl path. Signed-off-by: Brian King <brking@us.ibm.com> Signed-off-by: Jens Axboe <axboe@suse.de>
* | [PATCH] block: implement elv_insert and use it (fix ordcolor flipping bug)Tejun Heo2006-02-082-34/+40
|/ | | | | | | | | | | | | | | | | | | q->ordcolor must only be flipped on initial queueing of a hardbarrier request. Constructing ordered sequence and requeueing used to pass through __elv_add_request() which flips q->ordcolor when it sees a barrier request. This patch separates out elv_insert() from __elv_add_request() and uses elv_insert() when constructing ordered sequence and requeueing. elv_insert() inserts the given request at the specified position and does nothing else. Signed-off-by: Tejun Heo <htejun@gmail.com> Acked-by: Jens Axboe <axboe@suse.de> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [PATCH] block: request_queue->ordcolor must not be flipped on SOFTBARRIERTejun Heo2006-02-051-1/+2
| | | | | | | | | q->ordcolor must not be flipped on SOFTBARRIER. Signed-off-by: Tejun Heo <htejun@gmail.com> Acked-by: Jens Axboe <axboe@suse.de> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [PATCH] fix ordering on requeued request drainageJens Axboe2006-02-051-22/+16
| | | | | | | | | | | | | Previously, if a fs request which was being drained failed and got requeued, blk_do_ordered() didn't allow it to be reissued, which causes queue stall. This patch makes blk_do_ordered() use the sequence of each request to determine whether a request can be issued or not. This fixes the bug and simplifies code. Signed-off-by: Tejun Heo <htejun@gmail.com> Acked-by: Jens Axboe <axboe@suse.de> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [PATCH] percpu data: only iterate over possible CPUsEric Dumazet2006-02-051-1/+1
| | | | | | | | | | | | | | | | | | | | | | | percpu_data blindly allocates bootmem memory to store NR_CPUS instances of cpudata, instead of allocating memory only for possible cpus. As a preparation for changing that, we need to convert various 0 -> NR_CPUS loops to use for_each_cpu(). (The above only applies to users of asm-generic/percpu.h. powerpc has gone it alone and is presently only allocating memory for present CPUs, so it's currently corrupting memory). Signed-off-by: Eric Dumazet <dada1@cosmosbay.com> Cc: "David S. Miller" <davem@davemloft.net> Cc: James Bottomley <James.Bottomley@steeleye.com> Acked-by: Ingo Molnar <mingo@elte.hu> Cc: Jens Axboe <axboe@suse.de> Cc: Anton Blanchard <anton@samba.org> Acked-by: William Irwin <wli@holomorphy.com> Cc: Andi Kleen <ak@muc.de> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [PATCH] device-mapper disk statistics: timingJun'ichi "Nick" Nomura2006-02-011-0/+2
| | | | | | | | | | | | | | | Record I/O timing statistics The start time is added to struct dm_io, an existing structure allocated privately internally within dm and attached to each incoming bio. We export disk_round_stats() from block/ll_rw_blk.c instead of creating a private clone. Signed-off-by: Jun'ichi "Nick" Nomura <j-nomura@ce.jp.nec.com> Signed-off-by: Alasdair G Kergon <agk@redhat.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [BLOCK] A few kerneldoc fixupsJens Axboe2006-01-311-0/+2
| | | | Signed-off-by: Jens Axboe <axboe@suse.de>
* [BLOCK] ll_rw_blk: fix setting of ->ordered on initTetsuo Takata2006-01-241-0/+1
| | | | | | | This makes XFS barrier mounts succeed on my SCSI system. Signed-off-by: Tetsuo Takata <takatatt@intellilink.co.jp> Signed-off-by: Jens Axboe <axboe@suse.de>
* [BLOCK] elevator: allow default scheduler to potentially be modularNate Diller2006-01-241-4/+6
| | | | | | | | | | | | | | | Jens has decided that allowing the default scheduler to be a module is a bug, and should not be allowed under kconfig. However, I find that scenario useful for debugging, and wish for the kernel to be able to handle this situation without OOPSing, if I enable such an option in the .config directly. This patch dynamically checks for the presence of the compiled-in default, and falls back to no-op, emitting a suitable error message, when the default is not available Tested for a range of boot options on 2.6.16-rc1-mm2. Signed-off-by: Nate Diller <nate.diller@gmail.com> Signed-off-by: Jens Axboe <axboe@suse.de>
* [BLOCK] elevator: default choice selectionNate Diller2006-01-241-31/+14
| | | | | | | | | | | | | | | | | My previous default iosched patch did a poor job dealing with the 'elevator=' boot-time option. The old behavior falls back to the compiled-in default if the requested one is not registered at boot time. This patch dynamically evaluates which default to use, and emits a suitable error message when the requested scheduler is not available. It also does the 'as' -> 'anticipatory' conversion before elevator registration, which along with a modified registration function, allows it to correctly indicate which default scheduler is in use. Tested for a range of boot options on 2.6.16-rc1-mm2. Signed-off-by: Nate Diller <nate.diller@gmail.com> Signed-off-by: Jens Axboe <axboe@suse.de>
* [BLOCK] ll_rw_blk: use preempt-disabling disk_stat_add() in completionJens Axboe2006-01-241-1/+1
| | | | | | It can legally be called with interrupts/preemption enabled. Signed-off-by: Jens Axboe <axboe@suse.de>
* [BLOCK] ll_rw_blk: make max_sectors and max_hw_sectors unsigned intsJens Axboe2006-01-241-1/+1
| | | | | | | IDE lba48 can support full 64k request size, which overflows the max_hw_sectors variable. Signed-off-by: Jens Axboe <axboe@suse.de>
* [BLOCK] elevator: if specified scheduler is not found, fall back to defaultJens Axboe2006-01-161-2/+2
| | | | Signed-off-by: Jens Axboe <axboe@suse.de>
* [BLOCK] elevator: Make elevator=as work again for anticipatoryChuck Ebbert2006-01-161-0/+7
| | | | | Signed-off-by: Chuck Ebbert <76306.1226@compuserve.com> Signed-off-by: Jens Axboe <axboe@suse.de>
* [PATCH] convert /proc/devices to use seq_file interfaceNeil Horman2006-01-141-20/+86
| | | | | | | | | | | | A Christoph suggested that the /proc/devices file be converted to use the seq_file interface. This patch does that. I've obxerved one or two installation that had sufficiently large sans that they overran the 4k limit on /proc/devices. Signed-off-by: Neil Horman <nhorman@redhat.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [PATCH] fix queue stalling while barrier sequencingTejun Heo2006-01-121-10/+10
| | | | | | | | | | | | | | | | | | | If ordered tag isn't supported, request ordering for barrier sequencing is performed by queue draining, which basically hangs the request queue until elv_completed_request() reports completion of all previous fs requests. The condition check in elv_completed_request() was only performed for fs requests. If a special request is queued between the last to-be-drained request and the barrier sequence, draining is never completed and the queue is stalled forever. This patch moves the end-of-draining condition check such that it's performed for all requests. Signed-off-by: Tejun Heo <htejun@gmail.com> Signed-off-by: Jens Axboe <axboe@suse.de> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [PATCH] move capable() to capability.hRandy.Dunlap2006-01-112-1/+2
| | | | | | | | | | | | | - Move capable() from sched.h to capability.h; - Use <linux/capability.h> where capable() is used (in include/, block/, ipc/, kernel/, a few drivers/, mm/, security/, & sound/; many more drivers/ to go) Signed-off-by: Randy Dunlap <rdunlap@xenotime.net> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* Merge branch 'blk-softirq' of git://brick.kernel.dk/data/git/linux-2.6-blockLinus Torvalds2006-01-091-1/+105
|\ | | | | | | Manual merge for trivial #include changes
| * [BLOCK] ll_rw_blk: Enable out-of-order request completions through softirqJens Axboe2006-01-091-1/+105
| | | | | | | | | | | | | | | | | | Request completion can be a quite heavy process, since it needs to iterate through the entire request and complete the bio's it holds. This patch adds blk_complete_request() which moves this processing into a dedicated block softirq. Signed-off-by: Jens Axboe <axboe@suse.de>
* | [BLOCK] Kill blk_attempt_remerge()Jens Axboe2006-01-091-24/+0
| | | | | | | | | | | | | | | | It's a broken interface, it's done way too late. And apparently it triggers slab problems in recent kernels as well (most likely after the generic dispatch code was merged). So kill it, ide-cd is the only user of it. Signed-off-by: Jens Axboe <axboe@suse.de>
* | [BLOCK] scsi_ioctl: file can be NULL from ioctl_by_bdev()Jens Axboe2006-01-091-4/+9
| | | | | | | | Signed-off-by: Jens Axboe <axboe@suse.de>
* | make elv_try_merge() static, kill the dead declaration ofCoywolf Qi Hunt2006-01-091-2/+1
| | | | | | | | | | | | | | elv_try_last_merge(). Signed-off-by: Coywolf Qi Hunt <qiyong@fc-cn.com> Signed-off-by: Jens Axboe <axboe@suse.de>
* | [BLOCK][TRIVIAL] ll_rw_blk: header included twiceNicolas Kaiser2006-01-091-1/+0
|/ | | | | | | linux/blkdev.h included twice Signed-off-by: Nicolas Kaiser <nikai@nikai.net> Signed-off-by: Jens Axboe <axboe@suse.de>
* [PATCH] Add block_device_operations.getgeo block device methodChristoph Hellwig2006-01-081-0/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | HDIO_GETGEO is implemented in most block drivers, and all of them have to duplicate the code to copy the structure to userspace, as well as getting the start sector. This patch moves that to common code [1] and adds a ->getgeo method to fill out the raw kernel hd_geometry structure. For many drivers this means ->ioctl can go away now. [1] the s390 block drivers are odd in this respect. xpram sets ->start to 4 always which seems more than odd, and the dasd driver shifts the start offset around, probably because of it's non-standard sector size. Signed-off-by: Christoph Hellwig <hch@lst.de> Cc: Jens Axboe <axboe@suse.de> Cc: <mike.miller@hp.com> Cc: Jeff Dike <jdike@addtoit.com> Cc: Paolo Giarrusso <blaisorblade@yahoo.it> Cc: Bartlomiej Zolnierkiewicz <B.Zolnierkiewicz@elka.pw.edu.pl> Cc: Neil Brown <neilb@cse.unsw.edu.au> Cc: Markus Lidel <Markus.Lidel@shadowconnect.com> Cc: Russell King <rmk@arm.linux.org.uk> Cc: David Woodhouse <dwmw2@infradead.org> Cc: Martin Schwidefsky <schwidefsky@de.ibm.com> Cc: James Bottomley <James.Bottomley@steeleye.com> Signed-off-by: Adrian Bunk <bunk@stusta.de> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* Merge branch 'post-2.6.15' of git://brick.kernel.dk/data/git/linux-2.6-blockLinus Torvalds2006-01-066-368/+424
|\ | | | | | | | | | | | | Manual fixup for merge with Jens' "Suspend support for libata", commit ID 9b847548663ef1039dd49f0eb4463d001e596bc3. Signed-off-by: Linus Torvalds <torvalds@osdl.org>
| * [BLOCK] reimplement handling of barrier requestTejun Heo2006-01-062-167/+301
| | | | | | | | | | | | | | | | | | | | | | | | Reimplement handling of barrier requests. * Flexible handling to deal with various capabilities of target devices. * Retry support for falling back. * Tagged queues which don't support ordered tag can do ordered. Signed-off-by: Tejun Heo <htejun@gmail.com> Signed-off-by: Jens Axboe <axboe@suse.de>
| * [BLOCK] ll_rw_blk: separate out bio init part from __make_requestTejun Heo2006-01-061-29/+33
| | | | | | | | | | | | | | | | Separate out bio initialization part from __make_request. It will be used by the following blk_ordered_reimpl. Signed-off-by: Tejun Heo <htejun@gmail.com> Signed-off-by: Jens Axboe <axboe@suse.de>
| * [BLOCK] add @uptodate to end_that_request_last() and @error to rq_end_io_fn()Tejun Heo2006-01-062-8/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | add @uptodate argument to end_that_request_last() and @error to rq_end_io_fn(). there's no generic way to pass error code to request completion function, making generic error handling of non-fs request difficult (rq->errors is driver-specific and each driver uses it differently). this patch adds @uptodate to end_that_request_last() and @error to rq_end_io_fn(). for fs requests, this doesn't really matter, so just using the same uptodate argument used in the last call to end_that_request_first() should suffice. imho, this can also help the generic command-carrying request jens is working on. Signed-off-by: tejun heo <htejun@gmail.com> Signed-Off-By: Jens Axboe <axboe@suse.de>
| * [BLOCK] mark some block/ variables consArjan van de Ven2006-01-064-14/+14
| | | | | | | | | | | | | | | | | | the patch below marks various read-only variables in block/* as const, so that gcc can optimize the use of them; eg gcc will replace the use by the value directly now and will even remove the memory usage of these. Signed-off-by: Arjan van de Ven <arjan@infradead.org> Signed-off-by: Jens Axboe <axboe@suse.de>
| * [BLOCK] ll_rw_blk: fastpath get_request()Jens Axboe2006-01-061-33/+37
| | | | | | | | | | | | | | | | | | Originally from: Nick Piggin <nickpiggin@yahoo.com.au> Move current_io_context out of the get_request fastpth. Also try to streamline a few other things in this area. Signed-off-by: Jens Axboe <axboe@suse.de>
OpenPOWER on IntegriCloud