Tejun Heo 8f6205cd57 ide: dequeue in-flight request
ide generally has single request in flight and tracks it using
hwif->rq and all state handlers follow the following convention.

* ide_started is returned if the request is in flight.

* ide_stopped is returned if the queue needs to be restarted.  The
  request might or might not have been processed fully or partially.

* hwif->rq is set to NULL, when an issued request completes.

So, dequeueing model can be implemented by dequeueing after fetch,
requeueing if hwif->rq isn't NULL on ide_stopped return and doing
about the same thing on completion / port unlock paths.  These changes
can be made in ide-io proper.

In addition to the above main changes, the following updates are
necessary.

* ide-cd shouldn't dequeue a request when issuing REQUEST SENSE for it
  as the request is already dequeued.

* ide-atapi uses request queue as stack when issuing REQUEST SENSE to
  put the REQUEST SENSE in front of the failed request.  This now
  needs to be done using requeueing.

[ Impact: dequeue in-flight request ]

Signed-off-by: Tejun Heo <tj@kernel.org>
Cc: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Cc: Borislav Petkov <petkovbb@googlemail.com>
Cc: Sergei Shtylyov <sshtylyov@ru.mvista.com>
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
2009-05-11 09:52:14 +02:00
..
2009-03-31 20:15:21 +02:00
2009-04-08 14:13:04 +02:00
2009-01-06 17:20:55 +01:00
2009-01-06 17:20:52 +01:00
2009-03-27 12:46:28 +01:00
2009-04-18 17:42:19 +02:00
2009-04-08 14:13:02 +02:00
2009-05-11 09:52:14 +02:00
2009-05-11 09:52:14 +02:00
2009-03-27 12:46:45 +01:00
2009-03-31 20:15:33 +02:00
2009-05-11 09:50:55 +02:00
2009-03-27 12:46:34 +01:00
2009-04-08 14:13:03 +02:00
2009-05-11 09:52:14 +02:00
2009-04-28 07:37:28 +02:00
2009-04-08 14:13:03 +02:00
2009-04-28 07:37:30 +02:00
2009-03-27 12:46:18 +01:00
2009-04-08 14:13:03 +02:00
2009-05-11 09:50:55 +02:00
2009-01-06 17:20:52 +01:00
2008-11-02 21:40:08 +01:00
2009-04-08 14:13:03 +02:00
2009-04-18 17:42:19 +02:00
2008-10-26 09:35:05 -07:00
2009-04-08 14:13:03 +02:00
2009-01-06 17:20:52 +01:00