On 2/26/19 3:33 PM, Christoph Hellwig wrote:
On Tue, Feb 26, 2019 at 02:49:30PM +0100, Hannes Reinecke wrote:
Attached is a patch to demonstrate my approach.
I am aware that it'll only be useful for latest upstream where the legacy
I/O path has been dropped completely, so we wouldn't need to worry about it.
For older releases indeed you would need to with something like your
proposed patch, but for upstream I really would like to switch to
blk_mq_tagset_busy() iter.
While this is better than the driver private tracking we really should
not have to iterate all outstanding command, because if we have any
there is a bug we need to fix in the higher layers instead of working
around it in the drivers.
Ah-ha.
But what else should we be doing here?
The driver needs to abort all outstanding commands; I somewhat fail to
see how we could be doing it otherwise ...
Cheers,
Hannes