Re: [PATCH 5/6] qemu: snapshot: Properly handle image locking

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Sat, Jan 07, 2017 at 13:37:48 -0500, John Ferlan wrote:
> 
> 
> On 12/16/2016 11:24 AM, Peter Krempa wrote:
> > Images that became the backing chain of the current image due to the
> > snapshot need to be unlocked in the lock manager. Also if qemu was
> > paused during the snapshot the current top level images need to be
> > released until qemu is resumed so that they can be acquired properly.
> > 
> > Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1191901
> > ---
> >  src/qemu/qemu_driver.c | 17 +++++++++++++++++
> >  1 file changed, 17 insertions(+)
> > 
> > diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
> > index 742b6ceda..13da035c2 100644
> > --- a/src/qemu/qemu_driver.c
> > +++ b/src/qemu/qemu_driver.c
> > @@ -14452,6 +14452,23 @@ qemuDomainSnapshotCreateDiskActive(virQEMUDriverPtr driver,
> >                  virStorageFileUnlink(diskdata[i].src) < 0)
> >                  VIR_WARN("Unable to remove just-created %s", diskdata[i].src->path);
> >          }
> > +    } else {
> > +        /* on successful snapshot we need to remove locks from the now-old
> > +         * disks and if the VM is paused release locks on the images since qemu
> > +         * stopped using them*/
> > +        bool paused = virDomainObjGetState(vm, NULL) != VIR_DOMAIN_RUNNING;
> > +
> > +        for (i = 0; i < snap->def->ndisks; i++) {
> > +            if (!diskdata[i].disk)
> 
> Should this be disk.src?  Or handle the _NONE case? since src only gets
> filled in for that.

The entries in the 'diskdata' array are filled only if they are not
_NONE.  !diskdata[i].disk->src would crash on the missing entries since
.disk would be NULL. !diskdata[i].disk || !diskdata[i].disk->src is
redundant since the src member is mandatory for a disk object, thus
always present if .disk is not NULL.

Peter

Attachment: signature.asc
Description: PGP signature

--
libvir-list mailing list
libvir-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/libvir-list

[Index of Archives]     [Virt Tools]     [Libvirt Users]     [Lib OS Info]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]     [Fedora Tools]
  Powered by Linux