Re: floppy driver 2.6.3 question

From: Peter T. Breuer
Date: Thu Mar 18 2004 - 08:26:49 EST


"Also sprach Jens Axboe:"
> > 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?

I set it on requests I have gotten myself via blk_get_request(..., WRITE,
GFP_ATOMIC) and which are destined to be passed onto the drivers request
queue and treated by the request function. The request function will
know what to do with them. The bit I mention below is also set on them:

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

Hmm .. I though SPECIAL was "just" to ensure ordering of requests and
I went to some lengths to ensure that if I receive a request then we
start diverting incoming requests to an alternate queue until we have
treated all the requests already on the device queue! Then we ack the
special and pass the requests back from the alternate queue. You are
telling me that I needn't have bothered since I'm the only one who
could generate a special? Owww.

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