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

NAME

       blk_init_queue - prepare a request queue for use with a block device

SYNOPSIS

       request_queue_t * blk_init_queue  (request_fn_proc * rfn,
                                            spinlock_t * lock);

ARGUMENTS

       rfn    The function to be called to process  requests  that  have  been
              placed on the queue.

       lock   Request queue spin lock

DESCRIPTION

       If  a  block  device  wishes  to  use  the  standard  request  handling
       procedures, which sorts requests and coalesces adjacent requests,  then
       it must call blk_init_queue. The function rfn will be called when there
       are requests on the queue that need to  be  processed.  If  the  device
       supports plugging, then rfn may not be called immediately when requests
       are available on the queue, but  may  be  called  at  some  time  later
       instead. Plugged queues are generally unplugged when a buffer belonging
       to one of the requests on  the  queue  is  needed,  or  due  to  memory
       pressure.

        rfn  is not required, or even expected, to remove all requests off the
       queue, but only as many as it can handle at a time. If  it  does  leave
       requests  on  the  queue,  it  is  responsible  for  arranging that the
       requests get dealt with eventually.

       The queue spin lock must be held while manipulating the requests on the
       request queue.

       Function returns a pointer to the initialized request queue, or NULL if
       it didn’t succeed.

NOTE

        blk_init_queue must be paired with a blk_cleanup_queue call  when  the
       block device is deactivated (such as at module unload).