On Wed, 05/13 17:09, Paolo Bonzini wrote: > > > 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.
That's right, I'll drop this patch. Fam