DESCRIPTION Many block devices need to execute commands
asynchronously, so they don´t block the whole kernel
from preemption during request execution. This is
accomplished normally by inserting aritficial requests
tagged as REQ_TYPE_SPECIAL in to the corresponding request
queue, and letting them be scheduled for actual execution by
the request queue.

We have the option of inserting the head or the tail of
the queue. Typically we use the tail for new ioctls and so
forth. We use the head of the queue for things like a
QUEUE_FULL message from a device, or a host that is unable
to accept a particular command.