On 03/08/2016 02:52, Fam Zheng wrote: >> > It's also (perhaps especially) because blk_drain() can consume them. Fam's >> > patch to do blk_drain() first would cause a double-free. > That "consume" part is what I don't understand. > > Shouldn't blk_drain() only process submitted requests (and further requests > they dequeue indirectly), while s->rq only contains failed requests.
Nevermind, I was confused. virtio_blk_init_request doesn't store the requests in a list, unlike SCSI. Paolo