Re: [PATCH] ide-io.c, kernel 2.4.22 Fix for IO stats in /proc/partitions, was Re: sard/iostat disk I/O statistics/accounting for 2.5.8-pre3

From: Chad Talbott
Date: Tue Sep 23 2003 - 13:11:32 EST


"J.A. Magallon" <jamagallon@xxxxxxx> writes:

> On 09.15, Chad Talbott wrote:
> > I found the cause of ide disks' ios_in_flight going negative in
> > /proc/partitions.
> [...]

[broken patch elided...]

> Did you ever built this ? req -> rq ?

Good catch. Not that patch, obviously. :) I don't know where I came
up with that one; even with the req -> rq change it includes the call
to req_finished_io, so it's exactly a no-op.

Here's the one that I compiled and tested. It makes /proc/partitions
report correctly.

Thanks,
Chad

--- linux-2.4.22-old/drivers/ide/ide-io.c 15 Sep 2003 17:41:32 -0000
+++ linux-2.4.22-new/drivers/ide/ide-io.c 23 Sep 2003 17:40:27 -0000
@@ -148,6 +148,7 @@
ide_hwif_t *hwif = HWIF(drive);
unsigned long flags;
struct request *rq;
+ struct completion *waiting;

spin_lock_irqsave(&io_request_lock, flags);
rq = HWGROUP(drive)->rq;
@@ -221,7 +222,12 @@
spin_lock_irqsave(&io_request_lock, flags);
blkdev_dequeue_request(rq);
HWGROUP(drive)->rq = NULL;
- end_that_request_last(rq);
+
+ waiting = rq->waiting;
+ blkdev_release_request(rq);
+ if (waiting)
+ complete(waiting);
+
spin_unlock_irqrestore(&io_request_lock, flags);
}


-
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/