Yes, I'm very much in favour of this, too.
We always have this IMO slightly weird notion of stopping the queue,
set
some error flags in the driver, then _restarting_ the queue, just so
that the driver then sees the error flag and terminates the requests.
Which I always found quite counter-intuitive.
What about requests that come in after the iteration runs? how are those
terminated?
If we've reached a dead state, I think you'd want to start a queue freeze
before running the terminating iterator.
For the requests that come in after the iterator, the nvmf_check_ready()
routine, which validates controller state, will catch and bounce them.
The point of this patch was to omit the check in queue_rq like Keith
did in patch #2.