Re: [2.6.0-test9-mm2] Badness in as_put_request atdrivers/block/as-iosched.c:1783

From: Gerardo Exequiel Pozzi
Date: Mon Nov 10 2003 - 19:43:53 EST


On Mon, 10 Nov 2003 22:35:35 +0100, Ramón Rey Vicente wrote:
>Hi.
>
>Trying to scan de ide-scsi devices of my system, I get this
>
>arq->state 4
>Badness in as_put_request at drivers/block/as-iosched.c:1783
>Call Trace:
> [<c01dc908>] as_put_request+0x48/0xa0
> [<c01d47d3>] elv_put_request+0x13/0x20
> [<c01d69f2>] __blk_put_request+0x52/0xa0
> [<c01d6a61>] blk_put_request+0x21/0x40
> [<c01d9d0e>] sg_io+0x2ee/0x440
> [<c01da5c0>] scsi_cmd_ioctl+0x3c0/0x480
> [<c0124b49>] update_process_times+0x29/0x40
> [<c011949c>] schedule+0x31c/0x620
> [<d093bb65>] cdrom_ioctl+0x25/0xd60 [cdrom]
> [<c012eb33>] do_clock_nanosleep+0x1b3/0x300
> [<c0119800>] default_wake_function+0x0/0x20
> [<c01d86fa>] blkdev_ioctl+0x7a/0x383
> [<c01584be>] block_ioctl+0x1e/0x40
> [<c016158f>] sys_ioctl+0xef/0x260
> [<c0257c57>] syscall_call+0x7/0xb
>--
>Ramón Rey Vicente <ramon dot rey at hispalinux dot es>
> jabber ID <rreylinux at jabber dot org>
>GPG public key ID 0xBEBD71D5 -> http://pgp.escomposlinux.org/
>

I resolved this issue with this patch from Nick.

On Mon, 10 Nov 2003 11:53:28 +1100, Nick Piggin wrote:
>Thanks for the report guys,
>Please test the following patch with mm2 and let me know if you still
>have problems with it.
>
>Nick
>
>

linux-2.6-npiggin/drivers/block/as-iosched.c | 7 ++++---
1 files changed, 4 insertions(+), 3 deletions(-)

diff -puN drivers/block/as-iosched.c~as-full drivers/block/as-iosched.c
--- linux-2.6/drivers/block/as-iosched.c~as-full 2003-11-08 01:40:49.000000000 +1100
+++ linux-2.6-npiggin/drivers/block/as-iosched.c 2003-11-08 02:04:45.000000000 +1100
@@ -962,7 +962,7 @@ static void as_completed_request(request
}

if (!blk_fs_request(rq))
- return;
+ goto out;

if (ad->changed_batch && ad->nr_dispatched == 1) {
WARN_ON(ad->batch_data_dir == arq->is_sync);
@@ -982,7 +982,6 @@ static void as_completed_request(request
* and writeback caches
*/
if (ad->new_batch && ad->batch_data_dir == arq->is_sync) {
- WARN_ON(ad->batch_data_dir != REQ_SYNC);
update_write_batch(ad);
ad->current_batch_expires = jiffies +
ad->batch_expire[REQ_SYNC];
@@ -1508,8 +1507,10 @@ as_insert_request(request_queue_t *q, st

/* barriers must flush the reorder queue */
if (unlikely(rq->flags & (REQ_SOFTBARRIER | REQ_HARDBARRIER)
- && where == ELEVATOR_INSERT_SORT))
+ && where == ELEVATOR_INSERT_SORT)) {
+ WARN_ON(1);
where = ELEVATOR_INSERT_BACK;
+ }

switch (where) {
case ELEVATOR_INSERT_BACK:


chau,
djgera


--
Gerardo Exequiel Pozzi ( djgera )
http://www.vmlinuz.com.ar http://www.djgera.com.ar
KeyID: 0x1B8C330D
Key fingerprint = 0CAA D5D4 CD85 4434 A219 76ED 39AB 221B 1B8C 330D
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/