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