Re: floppy driver 2.6.3 question

From: Jens Axboe
Date: Thu Mar 18 2004 - 07:32:37 EST


On Thu, Mar 18 2004, Peter T. Breuer wrote:
> > > know. 128 requests have just previously been errored due to readahead
> > > and the check_media_changed result setting the driver request function
> > > to error out requests. Perhaps we have run out of requests (they're
> > > all put_ as far as I can see). Maybe the block layers get tired of
> > > talking to a device that errors requests. I'm just feeling my way!
> > > Any wild ideas are welcome!
> >
> > If the 129th request fails, then that's a pretty good clue that you
> > aren't getting the requests freed. Perhaps you are overwriting something
> > in the request after allocating it? Always mask change ->flags (don't
> > just set it), and don't overwrite ->rl.
>
> Good idea. rl is inviolate, but I set at least |=REQ_NOMERGE sometimes
> on flags. And I pass ioctl information in fake requests by setting

May I ask on what commands you set that bit?

> the bit just beyond the edge of those currently used (__REQ_BITS) to
> indicate its an ioctl and treating it specially in end request. Maybe
> on error I forgot to remove the extra bit before doing put_blk_request

Ugh, that sounds like very bad practice... The 'standard' way of doing
something like that is to flag REQ_SPECIAL and put whatever structure
you want in ->special.

--
Jens Axboe

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