Re: [RFC] [PATCH] A clean approach to writeout throttling

Jonathan Corbet
2007-12-10T21:32:05Z

Hey, Daniel,

I'm just getting around to looking at this. One thing jumped out at me:

> + if (bio->bi_throttle) {
> + struct request_queue *q = bio->bi_queue;
> + bio->bi_throttle = 0; /* or detect multiple endio and err? */
> + atomic_add(bio->bi_throttle, &q->available);
> + wake_up(&q->throttle_wait);
> + }

I'm feeling like I must be really dumb, but...how can that possibly
work? You're zeroing >bi_throttle before adding it back into
q->available, so the latter will never increase...

jon