Provided by: linux-doc-2.6.15_2.6.15-23.39_all bug


       blk_queue_start_tag - find a free tag and assign it


       int blk_queue_start_tag  (request_queue_t * q, struct request * rq);


       q      the request queue for the device

       rq     the block request that needs tagging


       This  can  either  be  used  as  a  stand-alone  helper, or possibly be
       assigned as the  queue  &prep_rq_fn  (in  which  case  &struct  request
       automagically  gets  a  tag  assigned). Note that this function assumes
       that any type of request can be queued! if this is not  true  for  your
       device,  you  must check the request type before calling this function.
       The request will also be removed from the request queue,  so  it’s  the
       drivers  responsibility  to  readd it if it should need to be restarted
       for some reason.


       queue lock must be held.