On 13/05/2015 17:02, Fam Zheng wrote: >> > For example, SCSI requests can result in many consecutive I/Os: >> > >> > (1) FUA requests are split in write+flush >> > >> > (2) adapters that do not use QEMUSGList-based I/O only read 128K at a time >> > >> > (3) WRITE SAME operations are also split in chunks >> > >> > (4) UNMAP operations process one descriptor at a time > I don't understand the point of these examples. If we don't return -EBUSY > here, > the request will sneak into block/io.c and perhaps break qmp transaction > semantics, if it lands between two backups.
It won't, because after blocking DEVICE_IO you will always drain I/O and the bdrv_drain will loop until the above are all satisfied. Paolo