1. 25 1月, 2013 2 次提交
  2. 24 1月, 2013 2 次提交
  3. 22 1月, 2013 1 次提交
  4. 21 1月, 2013 2 次提交
  5. 18 1月, 2013 3 次提交
    • D
      Fix race condition when destroying guests · 81621f3e
      Daniel P. Berrange 提交于
      When running virDomainDestroy, we need to make sure that no other
      background thread cleans up the domain while we're doing our work.
      This can happen if we release the domain object while in the
      middle of work, because the monitor might detect EOF in this window.
      For this reason we have a 'beingDestroyed' flag to stop the monitor
      from doing its normal cleanup. Unfortunately this flag was only
      being used to protect qemuDomainBeginJob, and not qemuProcessKill
      
      This left open a race condition where either libvirtd could crash,
      or alternatively report bogus error messages about the domain already
      having been destroyed to the caller
      Signed-off-by: NDaniel P. Berrange <berrange@redhat.com>
      81621f3e
    • P
      qemu: Simplify condition with already extracted flag · 5c13ed4f
      Peter Krempa 提交于
      5c13ed4f
    • V
      qemu: Double mutex unlock in qemuDomainModifyDeviceFlags · 56fd5134
      Viktor Mihajlovski 提交于
      The driver mutex was unlocked in qemuDomainModifyDeviceFlags before
      entering qemuDomainObjBeginJobWithDriver where it will be unlocked once
      more leaving it in an undefined state. The result was that two
      threads were simultaneously looking up the domain hash table during
      multiple parallel device attach/detach operations.
      Luckily this triggered a virHashIterationError.
      Signed-off-by: NViktor Mihajlovski <mihajlov@linux.vnet.ibm.com>
      56fd5134
  6. 16 1月, 2013 3 次提交
  7. 11 1月, 2013 2 次提交
  8. 08 1月, 2013 1 次提交
  9. 07 1月, 2013 3 次提交
    • O
      qemu: Check if the shared disk's cdbfilter conflicts with others · 1279e421
      Osier Yang 提交于
      This prevents domain starting and disk attaching if the shared disk's
      setting conflicts with other active domain(s), E.g. A domain with
      "sgio" set as "filtered", however, another active domain is using
      it set as "unfiltered".
      1279e421
    • O
      qemu: set unpriv_sgio when starting domain and attaching disk · 278f87c4
      Osier Yang 提交于
      This ignores the default "filtered" if unpriv_sgio is not supported
      by kernel, but for explicit request "filtered", it error out for
      domain starting.
      278f87c4
    • O
      qemu: Add a hash table for the shared disks · d7ead3e1
      Osier Yang 提交于
      This introduces a hash table for qemu driver, to store the shared
      disk's info as (@major:minor, @ref_count). @ref_count is the number
      of domains which shares the disk.
      
      Since we only care about if the disk support unprivileged SG_IO
      commands, and the SG_IO commands only make sense for block disk,
      this patch only manages (add/remove hash entry) the shared disk for
      block disk.
      
      * src/qemu/qemu_conf.h: (Add member 'sharedDisks' of type
                               virHashTablePtr; Declare helpers
                               qemuGetSharedDiskKey, qemuAddSharedDisk
                               and qemuRemoveSharedDisk)
      * src/qemu/qemu_conf.c (Implement the 3 helpers)
      * src/qemu/qemu_process.c (Update 'sharedDisks' when domain
                                 starting and shutdown)
      * src/qemu/qemu_driver.c (Update 'sharedDisks' when attaching
                                or detaching disk).
      d7ead3e1
  10. 05 1月, 2013 6 次提交
  11. 24 12月, 2012 2 次提交
  12. 22 12月, 2012 1 次提交
    • E
      blockjob: fix memleak that prevented block pivot · 08230dbd
      Eric Blake 提交于
      https://bugzilla.redhat.com/show_bug.cgi?id=888426
      
      The code for doing a block-copy was supposed to track the destination
      file in drive->mirror, but was set up to do all mallocs prior to
      starting the copy so that OOM wouldn't leave things partially started.
      However, the wrong variable was being written; later in the code we
      silently did 'disk->mirror = mirror' which was still NULL, and thus
      leaking memory and leaving libvirt to think that the mirror job was
      never started, which prevented a pivot operation after a copy.
      Problem introduced in commit 35c7701c.
      
      * src/qemu/qemu_driver.c (qemuDomainBlockCopy): Initialize correct
      variable.
      08230dbd
  13. 21 12月, 2012 12 次提交