On 30/09/2015 18:02, Jeff Cody wrote: > As a general rule for blockjobs, I disagree. > > Right away, there is a key difference: we don't know that the image is > (or should be) empty.
Not necessarily empty. sync='top' && mode='existing' && !target->backing_file, for example, makes sense if the target is a copy of source->bs. In fact, commit of the active layer is almost exactly a mode='existing' drive-mirror operation. But if you use mode == 'existing', and don't provide an image that follows the rules, it's garbage-in garbage-out. The sequence of operation makes sense, but the resulting image does not. Paolo > With mode != "existing", we know the image > should be empty, since we just created it (although for a host device, > it may have extraneous data in it). So I think it is not so much what > we can assume about an existing image, as it is what we cannot assume. > And that could potentially influence some block jobs.