1. 17 9月, 2013 7 次提交
    • P
      virsh-domain: Remove spurious ATTRIBUTE_UNUSED from cmdDesc · 626d4dfc
      Peter Krempa 提交于
      The "cmd" variable is actually used so remove the attribute.
      626d4dfc
    • P
      qemu: Use "migratable" XML definition when doing external checkpoints · 1b7bfa65
      Peter Krempa 提交于
      In the original implementation of external checkpoints I've mistakenly
      used the live definition to be stored in the save image. The normal
      approach is to use the "migratable" definition. This was discovered when
      commit 07966f6a changed the behavior to
      use a converted XML from the user to do the compatibility check to fix
      problem when using the regular machine saving.
      
      As the previous patch added a compatibility layer, we can now change the
      type of the XML in the image.
      
      Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1008340
      1b7bfa65
    • P
      qemu: Fix checking of ABI stability when restoring external checkpoints · 59898a88
      Peter Krempa 提交于
      External checkpoints have a bug in the implementation where they use the
      normal definition instead of the "migratable" one. This causes errors
      when the snapshot is being reverted using the workaround method via
      qemuDomainRestoreFlags() with a custom XML. This issue was introduced
      when commit 07966f6a changed the code to
      compare "migratable" XMLs from the user as we should have used
      migratable in the image too.
      
      This patch adds a compatibility layer, so that fixing the snapshot code
      won't make existing snapshots fail to load.
      
      Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1008340
      59898a88
    • H
      virsh: Fix a wrong check in cmdEcho() · 0925ad4e
      Hongwei Bi 提交于
      What should be checked here is xmlbuf rather than buf.
      0925ad4e
    • D
      Allow LUN type disks to have no source · 3efbe13f
      Doug Goldstein 提交于
      CD-ROMs and Floppies are allowed to have no source to imply they are
      empty or disconnected. Since the LUN type is used for raw CD-ROM access
      with QEMU (and VMWare in the future), it also needs to allow an empty
      source when the raw CD-ROM device is disconnected from the domain.
      3efbe13f
    • J
      Always free network and graphics cookies · 102eb00c
      Ján Tomko 提交于
      qemuMigrationEatCookie has flags to control if these should
      be parsed, but it does not fill mig->flags. These cookies might
      get leaked if these flags are not set by qemuMigrationBakeCookie.
      
      42 (32 direct, 10 indirect) bytes in 1 blocks are definitely lost in
      loss record 361 of 662
      ==123== by 0x1BA33FCA: qemuMigrationEatCookie (qemu_migration.c:678)
      ==123== by 0x1BA34A1E: qemuMigrationRun (qemu_migration.c:3108)
      ==123== by 0x1BA3622B: doNativeMigrate (qemu_migration.c:3343)
      ==123== by 0x1BA3B408: qemuMigrationPerform (qemu_migration.c:4138)
      102eb00c
    • J
      Free slicename in virSystemdCreateMachine · 09b48562
      Ján Tomko 提交于
      https://bugzilla.redhat.com/show_bug.cgi?id=1008619
      
      1,003 bytes in 1 blocks are definitely lost in loss record 599 of 635
      ==404== by 0x50728A7: virBufferAddChar (virbuffer.c:185)
      ==404== by 0x50BC466: virSystemdEscapeName (virsystemd.c:67)
      ==404== by 0x50BC6B2: virSystemdMakeSliceName (virsystemd.c:108)
      ==404== by 0x50BC870: virSystemdCreateMachine (virsystemd.c:169)
      ==404== by 0x5078267: virCgroupNewMachine (vircgroup.c:1498)
      09b48562
  2. 16 9月, 2013 6 次提交
    • E
      build: make autobuild require rpm build deps · 6ccf92ab
      Eric Blake 提交于
      I spent far too long on a new machine trying to figure out why
      ./autobuild.sh failed due to an rpm build failure (complaining
      that libvirt_parthelper was supposed to be packaged but was not
      built), and finally traced it to a missing parted-devel
      installation.  I learned that --nodeps is in place for
      autobuilder setups, but for developers, removing it would make
      rpmbuild error out much sooner for a less cryptic failure.
      
      * autobuild.sh: Conditionally drop --nodeps from rpmbuild lines.
      Signed-off-by: NEric Blake <eblake@redhat.com>
      6ccf92ab
    • E
      build: fix build with latest rawhide kernel headers · e62e0094
      Eric Blake 提交于
      Bother those kernel developers.  In the latest rawhide, kernel
      and glibc have now been unified so that <netinet/in.h> and
      <linux/in6.h> no longer clash; but <linux/if_bridge.h> is still
      not self-contained.  Because of the latest header change, the
      build is failing with:
      
      checking for linux/param.h... no
      configure: error: You must install kernel-headers in order to compile libvirt with QEMU or LXC support
      
      with details:
      
      In file included from conftest.c:561:0:
      /usr/include/linux/in6.h:71:18: error: field 'flr_dst' has incomplete type
        struct in6_addr flr_dst;
      
      We need a workaround to avoid our workaround :)
      
      * configure.ac (NETINET_LINUX_WORKAROUND): New test.
      * src/util/virnetdevbridge.c (includes): Use it.
      Signed-off-by: NEric Blake <eblake@redhat.com>
      e62e0094
    • P
      cgroup: Move [qemu|lxc]GetCpuBWStatus to vicgroup.c and refactor it · d79fe8b5
      Peter Krempa 提交于
      The function existed in two identical instances in lxc and qemu. Move it
      to vircgroup.c and simplify it. Refactor the callers too.
      d79fe8b5
    • P
      cleanup: Kill usage of access(PATH, F_OK) in favor of virFileExists() · 4baa8d76
      Peter Krempa 提交于
      Semantics of the libvirt helper are more clear. This change also allows
      to clean up some pieces of code.
      4baa8d76
    • P
      util: Declare that virFileExists shall honor errno · d66e7ce6
      Peter Krempa 提交于
      Explicitly state that some parts of the code may require virFileExists
      to set or preserve a correct errno so that future modifications don't
      break.
      d66e7ce6
    • Y
      virsh: move command maxvcpus from domain group to host group. · 6c038ee3
      yangdongsheng 提交于
      Since the maxvcpus command query the maximum number of virtual
      CPUs supported for a guest VM on this connection, it should be
      in virsh-host.c but not virsh-domain.c.
      Signed-off-by: Nyangdongsheng <yangds.fnst@cn.fujitsu.com>
      6c038ee3
  3. 14 9月, 2013 1 次提交
    • G
      Explicitly link libvirt_net_rpc against SELINUX_LIBS · 42c6a0cd
      Guido Günther 提交于
      Since virnetsocket conditionally uses selinux we need to link against it
      otherwise the build fails with:
      
      CCLD     libvirtd
      /usr/bin/ld: ../src/.libs/libvirt-lxc.so: undefined reference to symbol 'freecon'
      /lib/i386-linux-gnu/libselinux.so.1: error adding symbols: DSO missing from command line
      collect2: error: ld returned 1 exit status
      make[3]: *** [libvirtd] Error 1
      42c6a0cd
  4. 13 9月, 2013 5 次提交
  5. 12 9月, 2013 13 次提交
    • G
      LXC: don't try to mount selinux filesystem when user namespace enabled · 1c7037cf
      Gao feng 提交于
      Right now we mount selinuxfs even user namespace is enabled and
      ignore the error. But we shouldn't ignore these errors when user
      namespace is not enabled.
      
      This patch skips mounting selinuxfs when user namespace enabled.
      Signed-off-by: NGao feng <gaofeng@cn.fujitsu.com>
      1c7037cf
    • P
      qemu: Fix checking of guest ABI compatibility when reverting snapshots · 53c39f58
      Peter Krempa 提交于
      When reverting a live internal snapshot with a live guest the ABI
      compatiblity check was comparing a "migratable" definition with a normal
      one. This resulted in the check failing with:
      
      revert requires force: Target device address type none does not match source pci
      
      This patch generates a "migratable" definition from the actual one to
      check against the definition from the snapshot to avoid this problem.
      
      Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1006886
      53c39f58
    • L
      netcf driver: use a single netcf handle for all connections · 822fe136
      Laine Stump 提交于
      This resolves: https://bugzilla.redhat.com/show_bug.cgi?id=983026
      
      The netcf interface driver previously had no state driver associated
      with it - as a connection was opened, it would create a new netcf
      instance just for that connection, and close it when it was
      finished. the problem with this is that each connection to libvirt
      used up a netlink socket, and there is a per process maximum of ~1000
      netlink sockets.
      
      The solution is to create a state driver to go along with the netcf
      driver. The state driver will opens a netcf instance, then all
      connections share that same netcf instance, thus only a single
      netlink socket will be used no matter how many connections are mde to
      libvirtd.
      
      This was rather simple to do - a new virObjectLockable class is
      created for the single driverState object, which is created in
      netcfStateInitialize and contains the single netcf handle; instead of
      creating a new object for each client connection, netcfInterfaceOpen
      now just increments the driverState object's reference count and puts
      a pointer to it into the connection's privateData. Similarly,
      netcfInterfaceClose() just un-refs the driverState object (as does
      netcfStateCleanup()), and virNetcfInterfaceDriverStateDispose()
      handles closing the netcf instance. Since all the functions already
      have locking around them, the static lock functions used by all
      functions just needed to be changed to call virObjectLock() and
      virObjectUnlock() instead of directly calling the virMutex* functions.
      822fe136
    • L
      rename "struct interface_driver" to virNetcfDriverState · 4c5fa430
      Laine Stump 提交于
      This better fits the modern naming scheme in libvirt, and anticipates
      an upcoming change where a single instance of this state will be
      maintained by a separate state driver, and every instance of the netcf
      driver will share the same state.
      4c5fa430
    • D
      Ensure root filesystem is recursively mounted readonly · 75235a52
      Daniel P. Berrange 提交于
      If the guest is configured with
      
          <filesystem type='mount'>
            <source dir='/'/>
            <target dir='/'/>
            <readonly/>
          </filesystem>
      
      Then any submounts under / should also end up readonly, except
      for those setup as basic mounts. eg if the user has /home on a
      separate volume, they'd expect /home to be readonly, but we
      should not touch the /sys, /proc, etc dirs we setup ourselves.
      
      Users can selectively make sub-mounts read-write again by
      simply listing them as new mounts without the <readonly>
      flag set
      
          <filesystem type='mount'>
            <source dir='/home'/>
            <target dir='/home'/>
          </filesystem>
      Signed-off-by: NDaniel P. Berrange <berrange@redhat.com>
      75235a52
    • D
      Move array of mounts out of lxcContainerMountBasicFS · f27f5f7e
      Daniel P. Berrange 提交于
      Move the array of basic mounts out of the lxcContainerMountBasicFS
      function, to a global variable. This is to allow it to be referenced
      by other methods wanting to know what the basic mount paths are.
      Signed-off-by: NDaniel P. Berrange <berrange@redhat.com>
      f27f5f7e
    • D
      Add some notes about security considerations when using LXC · 5e6a85c7
      Daniel P. Berrange 提交于
      Describe some of the issues to be aware of when configuring LXC
      guests with security isolation as a goal.
      Signed-off-by: NDaniel P. Berrange <berrange@redhat.com>
      5e6a85c7
    • D
      Fix launching of VMs on when only logind part of systemd is present · a48838ad
      Daniel P. Berrange 提交于
      Debian systems may run the 'systemd-logind' daemon, which causes the
      /sys/fs/cgroup/systemd  mount to be setup, but no other cgroup
      controllers are created. While the LXC driver considers cgroups to
      be mandatory, the QEMU driver is supposed to accept them as optional.
      
      We detect whether they are present by looking in /proc/mounts for
      any mounts of type 'cgroups', but this is not sufficient. We need to
      skip any named mounts (as seen by a name=XXX string in the mount
      options), so that we only detect actual resource controllers.
      
      http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=721979Signed-off-by: NDaniel P. Berrange <berrange@redhat.com>
      a48838ad
    • D
      Fix polkit permission names for storage pools, vols & node devices · 62184938
      Daniel P. Berrange 提交于
      The polkit access driver used the wrong permission names for checks
      on storage pools, volumes and node devices. This led to them always
      being denied access.
      
      The 'dettach' permission was also mis-spelt and should have been
      'detach'. While permission names are ABI sensitive, the fact that
      the code used the wrong object name for checking node device
      permissions, means that no one could have used the mis-spelt
      'dettach' permission.
      Signed-off-by: NDaniel P. Berrange <berrange@redhat.com>
      62184938
    • J
      virsh domjobinfo: Do not return 1 if job is NONE · f084caae
      Jiri Denemark 提交于
      https://bugzilla.redhat.com/show_bug.cgi?id=1006864
      
      Commit 38ab1225 changed the default value of ret from true to false but
      forgot to set ret = true when job is NONE. Thus, virsh domjobinfo
      returned 1 when there was no job running for a domain but it used to
      (and should) return 0 in this case.
      f084caae
    • D
      Repair the search on libvirt.org · a41e95db
      Daniel Veillard 提交于
      First make sure that the input is xhtml as the stylesheets expect
      namespaced element, then use a span element instead of a as a
      is treated specially, finally adjust the makefile to check for
      the new span element and replace it with the PHP code
      a41e95db
    • M
      api-docs: Fix description of virConnectGetType() API function · 25b133e7
      Michal Novotny 提交于
      This fixes the description of virConnectGetType() API function in
      API documentation to match the real functionality that it can be
      used to get driver name, and provide a hint on how to learn about
      full capabilities.
      Signed-off-by: NMichal Novotny <minovotn@redhat.com>
      Signed-off-by: NEric Blake <eblake@redhat.com>
      25b133e7
    • E
      build: require libnl-3 if netcf uses it · cf83adfb
      Eric Blake 提交于
      Commits 9298bfbc and f6c29515 both tried to make it possible to
      select the correct libnl (1 vs. 3) according to what netcf
      used, when both libraries are installed.  This works to avoid
      libnl-3 when netcf used libnl-1.  But on the converse side, if
      only libnl-1 development code is installed, while netcf uses
      libnl-3, then configure happily uses libnl-1 anyways, leading
      to a test failure:
      
      $ VIR_TEST_DEBUG=1 ./virdrivermoduletest
      TEST: virdrivermoduletest
       1) Test driver "network"                                             ... OK
       2) Test driver "storage"                                             ... OK
       3) Test driver "nodedev"                                             ... OK
       4) Test driver "secret"                                              ... OK
       5) Test driver "nwfilter"                                            ... OK
       6) Test driver "interface"
      ... lt-virdrivermoduletest: route/tc.c:973: rtnl_tc_register: Assertion
      `0' failed.
      Aborted
      
      It's much nicer to prevent this at configure time, by requiring that
      if we know what netcf used, then we want the same libnl version.  As
      before, this can be bypassed by someone who knows what they are doing
      by setting LIBNL_CFLAGS (perhaps useful to the rare person where the
      build box has a different version of netcf than the installation box).
      
      * configure.ac (LIBNL): If we can prove netcf used libnl-3, then
      don't let configure succeed with libnl-1.
      Signed-off-by: NEric Blake <eblake@redhat.com>
      cf83adfb
  6. 11 9月, 2013 8 次提交