[libvirt] [PATCH] Query block allocation extent from QEMU monitor

Daniel P. Berrange berrange at redhat.com
Sun May 16 09:03:16 UTC 2010


On Fri, May 14, 2010 at 10:39:08AM -0600, Eric Blake wrote:
> On 05/14/2010 07:10 AM, Daniel P. Berrange wrote:
> > The virDomainGetBlockInfo API allows query physical block
> > extent and allocated block extent. These are normally the
> > same value unless storing a special format like qcow2
> > inside a block device. In this scenario we can query QEMU
> > to get the actual allocated extent.
> > 
> > Since last time:
> > 
> >  - Return fatal error in text monitor
> 
> Good, but...
> 
> > -    ret = 0;
> > +    /* ..but if guest is running & not using raw
> > +       disk format and on a block device, then query
> > +       highest allocated extent from QEMU */
> > +    if (virDomainObjIsActive(vm) &&
> > +        disk->type == VIR_DOMAIN_DISK_TYPE_BLOCK &&
> > +        meta.format != VIR_STORAGE_FILE_RAW &&
> > +        S_ISBLK(sb.st_mode)) {
> > +        qemuDomainObjPrivatePtr priv = vm->privateData;
> > +        if (qemuDomainObjBeginJob(vm) < 0)
> > +            goto cleanup;
> > +
> > +        qemuDomainObjEnterMonitor(vm);
> > +        ret = qemuMonitorGetBlockExtent(priv->mon,
> > +                                        disk->info.alias,
> > +                                        &info->allocation);
> 
> that means you now propagate that fatal error out of the call, rather
> than falling back on the default.

Yes, that is the intended behaviour here. If it is a block device + not using
the raw format, then we want the caller to be able to see the error


Daniel
-- 
|: Red Hat, Engineering, London    -o-   http://people.redhat.com/berrange/ :|
|: http://libvirt.org -o- http://virt-manager.org -o- http://deltacloud.org :|
|: http://autobuild.org        -o-         http://search.cpan.org/~danberr/ :|
|: GnuPG: 7D3B9505  -o-   F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505 :|




More information about the libvir-list mailing list