Re: More on the IDE multiwrite problem

David S. Miller (davem@redhat.com)
Sat, 18 Dec 1999 10:16:41 -0800


Date: Sat, 18 Dec 1999 13:02:17 -0500
From: TenThumbs <tenthumbs@cybernex.net>

I'm still seeing the problem in 2.2.14pre15 although it may have moved. Now I
get:

Dec 18 12:45:34 perfect kernel: hdc: buffer list corrupted (0, -2, 2)
Dec 18 12:45:34 perfect kernel: end_request: I/O error, dev 16:01 (hdc),
sector 1672808

Do you have a patch to try?

Alan, I think Mark is right, what if:

do {
unsigned long flags;
unsigned long nsect = rq->current_nr_sectors;
if (nsect > mcount)
nsect = mcount;
mcount -= nsect;

idedisk_output_data(drive, rq->buffer, nsect<<7);

IRQ right after the output to the disk, and reread current_nr_sectors,
output data to the disk again, etc.

The second call will decrement nr_sectors in the rq, we return from
the IRQ and the toplevel call does it again, resulting in the
corrupted request.

Later,
David S. Miller
davem@redhat.com

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/