On 12/5/18 10:45 PM, Kashyap Desai wrote: >> >> If the 'tag' passed to scsi_host_find_tag() is valid, I think there >> shouldn't have such issue. >> >> If you want to find outstanding IOs, maybe you can try >> blk_mq_queue_tag_busy_iter() >> or blk_mq_tagset_busy_iter(), because you may not know if the passed > 'tag' >> to >> scsi_host_find_tag() is valid or not. > > We tried quick change in mpt3sas driver using blk_mq_tagset_busy_iter and > it returns/callback for valid requests (no stale entries are returned). > Expected. > Above two APIs are only for blk-mq. What about non-mq case ? Driver > should use scsi_host_find_tag for non-mq and blk_mq_tagset_busy_iter for > blk-mq case ? > I don't see that will be good interface. Also, blk_mq_tagset_busy_iter API > does not provide control if driver wants to quit in-between or do some > retry logic etc. > > Why can't we add single API which provides the correct output. >From 4.21 and forward, there will only be blk/scsi-mq. This is exactly the problem with having to maintain two stacks, it's a huge pain. -- Jens Axboe