1. 05 2月, 2013 3 次提交
    • D
      Rename all domain list APIs to have virDomainObjList prefix · 4f6ed6c3
      Daniel P. Berrange 提交于
      The APIs names for accessing the domain list object are
      very inconsistent. Rename them all to have a standard
      virDomainObjList prefix.
      4f6ed6c3
    • D
      Introduce a virQEMUDriverConfigPtr object · b090aa7d
      Daniel P. Berrange 提交于
      Currently the virQEMUDriverPtr struct contains an wide variety
      of data with varying access needs. Move all the static config
      data into a dedicated virQEMUDriverConfigPtr object. The only
      locking requirement is to hold the driver lock, while obtaining
      an instance of virQEMUDriverConfigPtr. Once a reference is held
      on the config object, it can be used completely lockless since
      it is immutable.
      
      NB, not all APIs correctly hold the driver lock while getting
      a reference to the config object in this patch. This is safe
      for now since the config is never updated on the fly. Later
      patches will address this fully.
      Signed-off-by: NDaniel P. Berrange <berrange@redhat.com>
      b090aa7d
    • M
      qemu: Catch stderr of image decompression binary · cc6c425f
      Michal Privoznik 提交于
      If a decompression binary prints something to stderr, currently
      it is discarded. However, it can contain useful data from
      debugging POV, so we should catch it.
      cc6c425f
  2. 29 1月, 2013 1 次提交
  3. 25 1月, 2013 4 次提交
  4. 24 1月, 2013 2 次提交
  5. 22 1月, 2013 1 次提交
  6. 21 1月, 2013 2 次提交
  7. 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
  8. 16 1月, 2013 3 次提交
  9. 11 1月, 2013 2 次提交
  10. 08 1月, 2013 1 次提交
  11. 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
  12. 05 1月, 2013 6 次提交
  13. 24 12月, 2012 2 次提交
  14. 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
  15. 21 12月, 2012 6 次提交