Re: ll_rw_blk.c BUG

From: Jeff V. Merkey (jmerkey@timpanogas.com)
Date: Tue May 30 2000 - 21:11:55 EST


I just built 2.4.0-test1 and I am seeing this same thing when doing
asynch I/O directly. I am also seeing write corruption on an NWFS
volume in the directory file (i.e. the primary gets written, but the
mirror directory does not, resulting in FS corruption.

What's there is corrupting data .....

:-/

Jeff

"Leonard N. Zubkoff" wrote:
>
> There have been a number of reports of problems with the elevator.c debugging
> messages:
>
> 30:01: elevator read_pendings 2 should be 1
> 30:01: elevator nr_segments 12 should be 11
>
> showing up under load on systems with DAC960 RAID controllers. The underlying
> problem here is that the elevator accounting in ll_rw_blk.c is incorrect in the
> case where the call to the request_fn blocks. In that case, the request has
> already been placed into the queue but the call to elevator_account_request to
> account for it in the elevator data structures will not be make until after the
> request_fn completes. The following patch will correct this.
>
> Leonard
>
> --- linux/drivers/block/ll_rw_blk.c- Wed May 24 18:38:26 2000
> +++ linux/drivers/block/ll_rw_blk.c Tue May 30 18:38:07 2000
> @@ -411,6 +411,7 @@
>
> drive_stat_acct(req->rq_dev, req->cmd, req->nr_sectors, 1);
>
> + elevator_account_request(&q->elevator, req);
> if (list_empty(head)) {
> req->elevator_sequence = elevator_sequence(&q->elevator, latency);
> list_add(&req->queue, &q->queue_head);
> @@ -748,7 +749,6 @@
> req->bhtail = bh;
> req->q = q;
> add_request(q, req, head, orig_latency);
> - elevator_account_request(elevator, req);
>
> spin_unlock_irqrestore(&io_request_lock, flags);
> return;
>
> -
> 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/

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



This archive was generated by hypermail 2b29 : Wed May 31 2000 - 21:00:26 EST