1. 25 2月, 2011 8 次提交
    • D
      Remove deallocator parameter from hash functions · 6952708c
      Daniel P. Berrange 提交于
      Since the deallocator is passed into the constructor of
      a hash table it is not desirable to pass it into each
      function again. Remove it from all functions, but provide
      a virHashSteal to allow a item to be removed from a hash
      table without deleteing it.
      
      * src/util/hash.c, src/util/hash.h: Remove deallocator
        param from all functions. Add virHashSteal
      * src/libvirt_private.syms: Add virHashSteal
      * src/conf/domain_conf.c, src/conf/nwfilter_params.c,
        src/nwfilter/nwfilter_learnipaddr.c,
        src/qemu/qemu_command.c, src/xen/xm_internal.c: Update
        for changed hash API
      6952708c
    • P
      Fix spelling mistake: seek · 0905d1ee
      Philipp Hahn 提交于
      Replace wrong "set" by correct "seek" in error message.
      Signed-off-by: NPhilipp Hahn <hahn@univention.de>
      0905d1ee
    • E
      audit: audit qemu pci and usb device passthrough · 1aaef5ad
      Eric Blake 提交于
      * src/qemu/qemu_audit.h (qemuDomainHostdevAudit): New prototype.
      * src/qemu/qemu_audit.c (qemuDomainHostdevAudit): New function.
      (qemuDomainStartAudit): Call as appropriate.
      * src/qemu/qemu_hotplug.c (qemuDomainAttachHostPciDevice)
      (qemuDomainAttachHostUsbDevice, qemuDomainDetachHostPciDevice)
      (qemuDomainDetachHostUsbDevice): Likewise.
      1aaef5ad
    • E
      audit: audit qemu memory and vcpu adjusments · e25f2c74
      Eric Blake 提交于
      * src/qemu/qemu_audit.h (qemuDomainMemoryAudit)
      (qemuDomainVcpuAudit): New prototypes.
      * src/qemu/qemu_audit.c (qemuDomainResourceAudit)
      (qemuDomainMemoryAudit, qemuDomainVcpuAudit): New functions.
      (qemuDomainStartAudit): Call as appropriate.
      * src/qemu/qemu_driver.c (qemudDomainSetMemory)
      (qemudDomainHotplugVcpus): Likewise.
      e25f2c74
    • E
      audit: add qemu hooks for auditing cgroup events · 6bb98d41
      Eric Blake 提交于
      * src/qemu/qemu_audit.h (qemuDomainCgroupAudit): New prototype.
      * src/qemu/qemu_audit.c (qemuDomainCgroupAudit): Implement it.
      * src/qemu/qemu_driver.c (qemudDomainSaveFlag): Add audit.
      * src/qemu/qemu_cgroup.c (qemuSetupDiskPathAllow)
      (qemuSetupChardevCgroup, qemuSetupHostUsbDeviceCgroup)
      (qemuSetupCgroup, qemuTeardownDiskPathDeny): Likewise.
      6bb98d41
    • E
      audit: prepare qemu for listing vm in cgroup audits · b4d3434f
      Eric Blake 提交于
      * src/qemu/qemu_cgroup.h (struct qemuCgroupData): New helper type.
      (qemuSetupDiskPathAllow, qemuSetupChardevCgroup)
      (qemuTeardownDiskPathDeny): Drop unneeded prototypes.
      (qemuSetupDiskCgroup, qemuTeardownDiskCgroup): Adjust prototype.
      * src/qemu/qemu_cgroup.c
      (qemuSetupDiskPathAllow, qemuSetupChardevCgroup)
      (qemuTeardownDiskPathDeny): Mark static and use new type.
      (qemuSetupHostUsbDeviceCgroup): Use new type.
      (qemuSetupDiskCgroup): Alter signature.
      (qemuSetupCgroup): Adjust caller.
      * src/qemu/qemu_hotplug.c (qemuDomainAttachHostUsbDevice)
      (qemuDomainDetachPciDiskDevice, qemuDomainDetachSCSIDiskDevice):
      Likewise.
      * src/qemu/qemu_driver.c (qemudDomainAttachDevice)
      (qemuDomainUpdateDeviceFlags): Likewise.
      b4d3434f
    • E
      cgroup: determine when skipping non-devices · 06173876
      Eric Blake 提交于
      * src/util/cgroup.c (virCgroupAllowDevicePath)
      (virCgroupDenyDevicePath): Don't fail with EINVAL for
      non-devices.
      * src/qemu/qemu_driver.c (qemudDomainSaveFlag): Update caller.
      * src/qemu/qemu_cgroup.c (qemuSetupDiskPathAllow)
      (qemuSetupChardevCgroup, qemuSetupHostUsbDeviceCgroup)
      (qemuSetupCgroup, qemuTeardownDiskPathDeny): Likewise.
      06173876
    • E
      virExec: avoid uninitialized memory usage · fd21ecfd
      Eric Blake 提交于
      valgrind warns:
      
      ==21079== Syscall param rt_sigaction(act->sa_mask) points to uninitialised byte(s)
      ==21079==    at 0x329840F63E: __libc_sigaction (sigaction.c:67)
      ==21079==    by 0x4E5A8E7: __virExec (util.c:661)
      
      Regression introduced in commit ab07533e.  Technically, sa_mask
      shouldn't affect operation if sa_flags selects sa_handler, and
      sa_handler selects SIG_IGN, but better safe than sorry.
      
      * src/util/util.c (__virExec): Supply missing sigemptyset.
      fd21ecfd
  2. 24 2月, 2011 8 次提交
  3. 23 2月, 2011 4 次提交
    • D
      Expose name + UUID to LXC containers via env variables · 6704e3fd
      Daniel P. Berrange 提交于
      When spawning 'init' in the container, set
      
        LIBVIRT_LXC_UUID=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
        LIBVIRT_LXC_NAME=YYYYYYYYYYYY
      
      to allow guest software to detect & identify that they
      are in a container
      
      * src/lxc/lxc_container.c: Set LIBVIRT_LXC_UUID and
        LIBVIRT_LXC_NAME env vars
      6704e3fd
    • D
      Fix off-by-1 in virFileAbsPath. · 9f5bbe3b
      Daniel P. Berrange 提交于
      The virFileAbsPath was not taking into account the '/' directory
      separator when allocating memory for combining cwd + path. Convert
      to use virAsprintf to avoid this type of bug completely.
      
      * src/util/util.c: Convert virFileAbsPath to use virAsprintf
      9f5bbe3b
    • D
      Fix group/mode for /dev/pts inside LXC container · 08fb2a9c
      Daniel P. Berrange 提交于
      Normal practice for /dev/pts is to have it mode=620,gid=5
      but LXC was leaving mode=000,gid=0 preventing unprivilegd
      users in the guest use of PTYs
      
      * src/lxc/lxc_controller.c: Fix /dev/pts setup
      08fb2a9c
    • E
      security: avoid memory leak · 009fce98
      Eric Blake 提交于
      Leak introduced in commit d6623003.
      
      * src/qemu/qemu_driver.c (qemuSecurityInit): Avoid leak on failure.
      * src/security/security_stack.c (virSecurityStackClose): Avoid
      leaking component drivers.
      009fce98
  4. 22 2月, 2011 10 次提交
  5. 21 2月, 2011 3 次提交
    • E
      maint: kill all remaining uses of old DEBUG macro · 994e7567
      Eric Blake 提交于
      Done mechanically with:
      $ git grep -l '\bDEBUG0\? *(' | xargs -L1 sed -i 's/\bDEBUG0\? *(/VIR_&/'
      
      followed by manual deletion of qemudDebug in daemon/libvirtd.c, along
      with a single 'make syntax-check' fallout in the same file, and the
      actual deletion in src/util/logging.h.
      
      * src/util/logging.h (DEBUG, DEBUG0): Delete.
      * daemon/libvirtd.h (qemudDebug): Likewise.
      * global: Change remaining clients over to VIR_DEBUG counterpart.
      994e7567
    • E
      hash: make virHashFree more free-like · 03ba07cb
      Eric Blake 提交于
      Two-argument free functions are uncommon; match the style elsewhere
      by caching the callback at creation.
      
      * src/util/hash.h (virHashCreate, virHashFree): Move deallocator
      argument to creation.
      * cfg.mk (useless_free_options): Add virHashFree.
      * src/util/hash.c (_virHashTable): Track deallocator.
      (virHashCreate, virHashFree): Update to new signature.
      * src/conf/domain_conf.c (virDomainObjListDeinit)
      (virDomainObjListInit, virDomainDiskDefForeachPath)
      (virDomainSnapshotObjListDeinit, virDomainSnapshotObjListInit):
      Update callers.
      * src/conf/nwfilter_params.c (virNWFilterHashTableFree)
      (virNWFilterHashTableCreate): Likewise.
      * src/conf/nwfilter_conf.c (virNWFilterTriggerVMFilterRebuild):
      Likewise.
      * src/cpu/cpu_generic.c (genericHashFeatures, genericBaseline):
      Likewise.
      * src/xen/xm_internal.c (xenXMOpen, xenXMClose): Likewise.
      * src/nwfilter/nwfilter_learnipaddr.c (virNWFilterLearnInit)
      (virNWFilterLearnShutdown): Likewise.
      * src/qemu/qemu_command.c (qemuDomainPCIAddressSetCreate)
      (qemuDomainPCIAddressSetFree): Likewise.
      * src/qemu/qemu_process.c (qemuProcessWaitForMonitor): Likewise.
      03ba07cb
    • D
      Remove all object hashtable caches from virConnectPtr · 2ff4c137
      Daniel P. Berrange 提交于
      The virConnectPtr struct will cache instances of all other
      objects. APIs like virDomainLookupByUUID will return a
      cached object, so if you do virDomainLookupByUUID twice in
      a row, you'll get the same exact virDomainPtr instance.
      
      This does not have any performance benefit, since the actual
      logic in virDomainLookupByUUID (and other APIs returning
      virDomainPtr, etc instances) is not short-circuited. All
      it does is to ensure there is only one single virDomainPtr
      in existance for any given UUID.
      
      The caching has a number of downsides though, all relating
      to stale data. If APIs aren't careful to always overwrite
      the 'id' field in virDomainPtr it may become out of data.
      Likewise for the name field, if a guest is renamed, or if
      a guest is deleted, and then a new one created with the
      same UUID but different name.
      
      This has been an ongoing, endless source of bugs for all
      applications using libvirt from languages with garbage
      collection, causing them to get virDomainPtr instances
      from long ago with stale data.
      
      The caching is also a waste of memory resources, since
      both applications, and language bindings often maintain
      their own hashtable caches of object instances.
      
      This patch removes all the hash table caching, so all
      APIs return brand new virDomainPtr (etc) object instances.
      
      * src/datatypes.h: Delete all hash tables.
      * src/datatypes.c: Remove all object caching code
      2ff4c137
  6. 19 2月, 2011 5 次提交
    • S
      nwfilter: enable rejection of packets · 912d170f
      Stefan Berger 提交于
      This patch adds the possibility to not just drop packets, but to also have them rejected where iptables at least sends an ICMP msg back to the originator. On ebtables this again maps into dropping packets since rejecting is not supported.
      
      I am adding 'since 0.8.9' to the docs assuming this will be the next version of libvirt.
      912d170f
    • G
      Drop empty argument from dnsmasq call · acab8a97
      Guido Günther 提交于
      since dnsmasq >= 2.56 now bails out with empty arguments. See
          http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=613944
      for the Debian bug and
          http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=589885
      for the upstream reasoning.
      acab8a97
    • E
      build: fix broken mingw cross-compilation · 7b6286b7
      Eric Blake 提交于
      Two regressions:
      Commit df1011ca broke builds for systems that lack devmapper
      (non-Linux, as well as Linux with ./autogen.sh --without-libvirtd
      and without the libraries present).
      Commit ce6fd650 broke cross-compilation, due to a gnulib bug.
      
      * .gnulib: Update to latest, for cross-compilation fix.
      * src/util/util.c (virIsDevMapperDevice): Provide stub for
      platforms not using storage driver.
      * configure.ac (devmapper): Arrange to define HAVE_LIBDEVMAPPER_H.
      devmapper issue reported by Wen Congyang.
      7b6286b7
    • M
      esx: Ignore malformed host UUID from BIOS · 791da4e7
      Matthias Bolte 提交于
      Etienne Gosset reported that libvirt fails to connect to his ESX
      server because it failed to parse its malformed host UUID, that
      contains an additional space and lacks one hexdigit in the last
      group:
      
      xxxxxxxx-xxxx-xxxx-xxxx- xxxxxxxxxxx
      
      Don't treat this as a fatal error, just ignore it.
      791da4e7
    • M
      virsh: freecell --all getting wrong NUMA nodes count · 595174ae
      Michal Privoznik 提交于
      Virsh freecell --all was not only getting wrong NUMA nodes count, but
      even the NUMA nodes IDs. They doesn't have to be continuous, as I've
      found out during testing this. Therefore a modification of
      nodeGetCellsFreeMemory() error message.
      595174ae
  7. 18 2月, 2011 2 次提交