1. 24 4月, 2014 6 次提交
    • P
      util: storage: Rename "path" to "relPath" in virStorageFileMetadata · f34b8296
      Peter Krempa 提交于
      To allow future change of virStorageFileMetadata to virStorageSource we
      need to store a full path in the "path" variable as rest of the code
      expects it to be a full path. Rename the "path" field to "relPath" to
      keep tracking the info but allowing a real "path" field.
      f34b8296
    • P
      storage: util: Clean up arguments of virStorageFileGetMetadataInternal · 66d92473
      Peter Krempa 提交于
      Avoid passing lot of arguments into guts of metadata retrieval to fill
      the actual structure. Temporarily fill the structure before passing it
      down to the actual metadata extractor.
      
      This will later help the inversion of the steps taken to extract the
      metadata so that this function can be fully converted to
      virStorageSource as the data struct.
      
      This patch also fixes regression when starting a gluster storage pool
      where the volumes don't have local representation so that the
      canonicalization of the volume's file name failed. Broken by commit
      79f11b35
      66d92473
    • P
      util: storage: Move checking of the actual backing image to the worker · 67084ed4
      Peter Krempa 提交于
      Move the code checking the presence of the backing file to the recursive
      worker function instead of the metadata parser. The recursive worker
      will later be changed to parse more than just local files and this
      change will help the separation.
      67084ed4
    • P
      util: storage: Remove obsolete argument virStorageFileGetMetadataInternal · 5c43e2e0
      Peter Krempa 提交于
      As we already pass the whole structure down the call path there's no
      need to return some stuff in a separate argument. Remove the argument
      and tweak callers to avoid breaking semantics.
      
      virStorageFileGetMetadataFromBuf will be refactored later along with the
      storage driver.
      5c43e2e0
    • P
      util: storagefile: Always store raw backing name in the metadata · 9944b710
      Peter Krempa 提交于
      Don't use the backingStoreRaw as a indication of broken chains. Fill it
      always and tweak the broken image chain detector to avoid changing the
      semantics.
      
      The new semantics to detect a broken chain is the presence of string in
      backingStoreRaw but the lack of the backing chain metadata structure in
      the chain.
      
      Now that the raw backing store name is always filled there's no need to
      pass the raw name variable separately to fill in case the backing is not
      a file. Tweak the function so that it can handle a NULL in that case.
      9944b710
    • P
      qemu: unexport qemuDiskChainCheckBroken · 00c27242
      Peter Krempa 提交于
      The function isn't used in any other source file. Move it so that it
      doesn't need a declaration.
      00c27242
  2. 23 4月, 2014 4 次提交
  3. 22 4月, 2014 4 次提交
  4. 20 4月, 2014 1 次提交
  5. 18 4月, 2014 3 次提交
    • J
      Remove QEMU_CAPS_MACHINE_USB_OPT from ComputeCmdFlags · 062074c4
      Ján Tomko 提交于
      The version check is for >=1.3.0, but ComputeCmdFlags
      is only called for QEMU <1.2.0.
      062074c4
    • J
      Only set QEMU_CAPS_NO_HPET on x86 · c3725db8
      Ján Tomko 提交于
      QEMU only supports it on x86, but we've been assuming it for
      all QEMUs when doing QMP capability detection.
      
      https://bugzilla.redhat.com/show_bug.cgi?id=1066145
      c3725db8
    • N
      Fix Memory Leak in virStorageFileGetMetadataRecurse() · ab07a7b3
      Nehal J Wani 提交于
      While running virstoragetest, valgrind pointed out the following
      memory leak:
      
      ==8142== 2 bytes in 1 blocks are definitely lost in loss record 1 of 92
      ==8142==    at 0x4A069EE: malloc (vg_replace_malloc.c:270)
      ==8142==    by 0x4E7B53E: mdir_name (dirname-lgpl.c:78)
      ==8142==    by 0x4CBE2B0: virStorageFileGetMetadataInternal (virstoragefile.c:595)
      ==8142==    by 0x4CBE651: virStorageFileGetMetadataFromFDInternal (virstoragefile.c:1086)
      ==8142==    by 0x4CBEEB4: virStorageFileGetMetadataRecurse (virstoragefile.c:1175)
      ==8142==    by 0x4CBF1DE: virStorageFileGetMetadata (virstoragefile.c:1270)
      ==8142==    by 0x4028AD: testStorageChain (virstoragetest.c:275)
      ==8142==    by 0x407B91: virtTestRun (testutils.c:201)
      ==8142==    by 0x4039D7: mymain (virstoragetest.c:534)
      ==8142==    by 0x40830D: virtTestMain (testutils.c:789)
      ==8142==    by 0x3E6CE1ED1C: (below main) (libc-start.c:226)
      
      ...62 times
      ab07a7b3
  6. 17 4月, 2014 1 次提交
  7. 16 4月, 2014 2 次提交
    • J
      storage: netfs: Handle backend errors · 4090e153
      John Ferlan 提交于
      Commit id '18642d10' caused a virt-test regression for NFS backend
      storage error path checks when running the command:
      
          'virsh find-storage-pool-sources-as netfs Unknown  '
      
      when the host did not have Gluster installed. Prior to the commit,
      the test would fail with the error:
      
          error: internal error: Child process (/usr/sbin/showmount --no-headers
          --exports Unknown) unexpected exit status 1: clnt_create: RPC: Unknown host
      
      After the commit, the error would be ignored, the call would succeed,
      and an empty list of pool sources returned. This was tucked into the
      commit message as an expected outcome.
      
      When the target host does not have a GLUSTER_CLI this is a regression
      over the previous release. Furthermore, even if Gluster CLI was present,
      but had a failure to get devices, the API would return a failure even if
      the NFS backend had found devices.
      
      Modify the logic to return failure when the NFS backend check fails and
      there's no GLUSTER_CLI or when both backend checks fail.
      
      If either returns success and GLUSTER_CLI is defined, then fetch and return
      a list of source devices even if it's empty
      4090e153
    • E
      conf: fix omission of <driver> in domain dumpxml · 8fb44675
      Eric Blake 提交于
      I noticed that depending on the <driver> attributes the user passed
      in, the output may omit the <driver> element altogether.  For example,
      the rerror_policy has had this problem since commit 4bb4109f in Oct
      2011.  But in adding testsuite coverage to expose it, I found another
      problem: the C code is just fine without a driver name, but the
      XML validator required either a name or a cache mode.
      
      * src/conf/domain_conf.c (virDomainDiskDefFormat): Update
      conditional.
      * docs/schemas/domaincommon.rng (diskDriver): Simplify.
      * tests/qemuxml2argvdata/qemuxml2argv-disk-drive-copy-on-read.xml:
      * tests/qemuxml2argvdata/qemuxml2argv-disk-drive-copy-on-read.args:
      New files.
      * tests/qemuxml2argvdata/qemuxml2argv-disk-drive-discard.xml:
      Enhance test.
      * tests/qemuxml2xmloutdata/qemuxml2xmlout-disk-drive-discard.xml:
      Likewise.
      * tests/qemuxml2argvtest.c (mymain): New test.
      * tests/qemuxml2xmltest.c (mymain): Likewise.
      Signed-off-by: NEric Blake <eblake@redhat.com>
      Signed-off-by: NJiri Denemark <jdenemar@redhat.com>
      8fb44675
  8. 15 4月, 2014 3 次提交
    • E
      conf: restrict external snapshots to backing store formats · db7d7c0e
      Eric Blake 提交于
      Domain snapshots should only permit an external snapshot into
      a storage format that permits a backing chain, since the new
      snapshot file necessarily must be backed by the existing file.
      The C code for the qemu driver is a little bit stricter in
      currently enforcing only qcow2 or qed, but at the XML parser
      level, including virt-xml-validate, it is fairly easy to
      enforce that a user can't request a 'raw' external snapshot.
      
      * docs/schemas/storagecommon.rng (storageFormat): Split out...
      (storageFormatBacking): ...new sublist.
      * docs/schemas/domainsnapshot.rng (disksnapshotdriver): Use new
      type.
      * src/util/virstoragefile.h (virStorageFileFormat): Rearrange for
      easier code management.
      * src/util/virstoragefile.c (virStorageFileFormat, fileTypeInfo):
      Likewise.
      * src/conf/snapshot_conf.c (virDomainSnapshotDiskDefParseXML): Use
      new marker to limit selection of formats.
      Signed-off-by: NEric Blake <eblake@redhat.com>
      Signed-off-by: NJiri Denemark <jdenemar@redhat.com>
      db7d7c0e
    • J
      Fix virsystemdtest without SYSTEMD_DAEMON · 6077be46
      Ján Tomko 提交于
      Commit 48976981 fixed the build without dbus by only building
      the virSystemdPMSupportTarget with SYSTEMD_DAEMON.
      
      Introduce a virDBusMessageUnref wrapper for dbus_message_unref
      to let virsystemd.c build without dbus, while still allowing
      virsystemdtest to run without SYSTEM_DAEMON.
      6077be46
    • M
      build: Don't use code with dbus_message_unref when built without dbus · 48976981
      Martin Kletzander 提交于
      In order to do that, virNodeSuspendSupportsTargetPMUtils() and
      virSystemdPMSupportTarget() are created even when pm-utils and dbus
      are compiled out, respectively, but in that case returning -2 meaning
      "unavailable" (this return code was already used for unavailability
      before).  Error is reported in virNodeSuspendSupportsTarget() only if
      both functions returned -2, otherwise the error (or success) is properly
      propagated up the stack.
      Signed-off-by: NMartin Kletzander <mkletzan@redhat.com>
      48976981
  9. 14 4月, 2014 1 次提交
  10. 12 4月, 2014 7 次提交
    • E
      conf: delete internal directory field · e0292e0c
      Eric Blake 提交于
      Another field no longer needed, getting us one step closer to
      merging virStorageFileMetadata and virStorageSource.
      
      * src/util/virstoragefile.h (_virStorageFileMetadata): Drop
      field.
      * src/util/virstoragefile.c (virStorageFileGetMetadataInternal)
      (virStorageFileGetMetadataFromFDInternal): Alter signature.
      (virStorageFileFreeMetadata, virStorageFileGetMetadataFromBuf)
      (virStorageFileGetMetadataFromFD): Adjust clients.
      * tests/virstoragetest.c (_testFileData, testStorageChain)
      (mymain): Simplify test.
      Signed-off-by: NEric Blake <eblake@redhat.com>
      e0292e0c
    • E
      conf: tweak chain lookup internals · d193b34d
      Eric Blake 提交于
      Thanks to the testsuite, I feel quite confident that this rewrite
      is correct; it gives the same results for all cases except for one.
      I can make the argument that _that_ case was a pre-existing bug:
      when looking up relative names, the lookup is supposed to be
      pegged to the directory that contains the parent qcow2 file.  Thus,
      this resolves the fixme first mentioned in commit 367cd69d (even
      though I accidentally removed the fixme comment early in 74430fe3).
      
      * src/util/virstoragefile.c (virStorageFileChainLookup): Depend on
      new rather than old fields.
      * tests/virstoragetest.c (mymain): Adjust test to match fix.
      Signed-off-by: NEric Blake <eblake@redhat.com>
      d193b34d
    • E
      conf: drop redundant parameter to chain lookup · 74430fe3
      Eric Blake 提交于
      The original chain lookup code had to pass in the starting name,
      because it was not available in the chain.  But now that we have
      added fields to the struct, this parameter is redundant.
      
      * src/util/virstoragefile.h (virStorageFileChainLookup): Alter
      signature.
      * src/util/virstoragefile.c (virStorageFileChainLookup): Adjust
      handling of top of chain.
      * src/qemu/qemu_driver.c (qemuDomainBlockCommit): Adjust caller.
      * tests/virstoragetest.c (testStorageLookup, mymain): Likewise.
      Signed-off-by: NEric Blake <eblake@redhat.com>
      74430fe3
    • E
      conf: report error on chain lookup failure · 6752bc2a
      Eric Blake 提交于
      The chain lookup function was inconsistent on whether it left
      a message in the log when looking up a name that is not found
      on the chain (leaving a message for OOM or if name was
      relative but not part of the chain), and could litter the log
      even when successful (when name was relative but deep in the
      chain, use of virFindBackingFile early in the chain would complain
      about a file not found).  It's easier to make the function
      consistently emit a message exactly once on failure, and to let
      all callers rely on the clean semantics.
      
      * src/util/virstoragefile.c (virStorageFileChainLookup): Always
      report error on failure.  Simplify relative lookups.
      * src/qemu/qemu_driver.c (qemuDomainBlockCommit): Avoid
      overwriting error.
      Signed-off-by: NEric Blake <eblake@redhat.com>
      6752bc2a
    • E
      util: new virFileRelLinkPointsTo function · 91f349d8
      Eric Blake 提交于
      When checking if two filenames point to the same inode (whether
      by hardlink or symlink), sometimes one of the names might be
      relative.  This convenience function makes it easier to check.
      
      * src/util/virfile.h (virFileRelLinkPointsTo): New prototype.
      * src/util/virfile.c (virFileRelLinkPointsTo): New function.
      * src/libvirt_private.syms (virfile.h): Export it.
      * src/xen/xm_internal.c (xenXMDomainGetAutostart): Use it.
      Signed-off-by: NEric Blake <eblake@redhat.com>
      91f349d8
    • C
      Introduce --without-pm-utils to get rid of pm-is-supported dependency · ec70f369
      Cédric Bosdonnat 提交于
      This uses the dbus api of systemd to check the power management
      capabilities of the node.
      ec70f369
    • W
      bhyve: fix domain management · 1ee866cf
      Wojciech Macek 提交于
      When domain is not persistent, it should be forgotten upon destroying.
      1ee866cf
  11. 11 4月, 2014 7 次提交
    • E
      conf: delete useless backingStoreFormat field · 86cfa1f6
      Eric Blake 提交于
      Drop another redundant field from virStorageFileMetadata.
      
      * src/util/virstoragefile.h (_virStorageFileMetadata): Drop
      field.
      * src/util/virstoragefile.c
      (virStorageFileGetMetadataFromFDInternal)
      (virStorageFileGetMetadataFromFD)
      (virStorageFileGetMetadataRecurse): Adjust callers.
      * tests/virstoragetest.c (_testFileData, testStorageChain)
      (mymain): Simplify test.
      Signed-off-by: NEric Blake <eblake@redhat.com>
      86cfa1f6
    • E
      conf: return backing information separately from metadata · a4dfc8d3
      Eric Blake 提交于
      A couple pieces of virStorageFileMetadata are used only while
      collecting information about the chain, and don't need to
      live permanently in the struct.  This patch refactors external
      callers to collect the information separately, so that the
      next patch can remove the fields.
      
      * src/util/virstoragefile.h (virStorageFileGetMetadataFromBuf):
      Alter signature.
      * src/util/virstoragefile.c (virStorageFileGetMetadataInternal):
      Likewise.
      (virStorageFileGetMetadataFromFDInternal): Adjust callers.
      * src/storage/storage_backend_fs.c (virStorageBackendProbeTarget):
      Likewise.
      * src/storage/storage_backend_gluster.c
      (virStorageBackendGlusterRefreshVol): Likewise.
      Signed-off-by: NEric Blake <eblake@redhat.com>
      a4dfc8d3
    • E
      conf: delete useless backingStoreIsFile field · c919ed7e
      Eric Blake 提交于
      Finally starting to prune away some of the old fields that have
      been made redundant by the new fields, on my way towards directly
      reusing virStorageSource.
      
      * src/util/virstoragefile.h (_virStorageFileMetadata): Drop
      field.
      * src/util/virstoragefile.c (virStorageFileGetMetadataInternal)
      (virStorageFileChainLookup): Adjust callers.
      * tests/virstoragetest.c (_testFileData, testStorageChain)
      (mymain): Simplify test.
      Signed-off-by: NEric Blake <eblake@redhat.com>
      c919ed7e
    • E
      conf: expose probe for non-local storage · 86f71e0a
      Eric Blake 提交于
      Deciding if a user string represents a local file instead of a
      network path is an operation worth exposing directly, particularly
      since the next patch will be removing a redundant variable that
      was caching the information.
      
      * src/util/virstoragefile.h (virStorageIsFile): New declaration.
      * src/util/virstoragefile.c (virBackingStoreIsFile): Rename...
      (virStorageIsFile): ...export, and allow NULL input.
      (virStorageFileGetMetadataInternal)
      (virStorageFileGetMetadataRecurse, virStorageFileGetMetadata):
      Update callers.
      * src/conf/domain_conf.c (virDomainDiskDefForeachPath): Use it.
      * src/storage/storage_backend_fs.c (virStorageBackendProbeTarget):
      Likewise.
      * src/libvirt_private.syms (virstoragefile.h): Export function.
      Signed-off-by: NEric Blake <eblake@redhat.com>
      86f71e0a
    • E
      conf: provide details on network backing store · 7010768c
      Eric Blake 提交于
      So far, my work has been merely preserving the status quo of
      backing file analysis.  But this patch starts to tread in the
      territory of making the backing chain code more powerful - we
      will eventually support network storage containing non-raw
      formats.  Here, we expose metadata information about a network
      backing store, even if that information is still hardcoded to
      a raw format for now.
      
      * src/util/virstoragefile.c (virStorageFileGetMetadataRecurse):
      Also populate struct for non-file backing.
      (virStorageFileGetMetadata, virStorageFileGetMetadatainternal):
      Recognize non-file top image.
      (virFindBackingFile): Add comment.
      (virStorageFileChainGetBroken): Adjust comment, ensure output
      is set.
      * tests/virstoragetest.c (mymain): Update test to reflect it.
      Signed-off-by: NEric Blake <eblake@redhat.com>
      7010768c
    • J
      cpu: Properly check input parameters · 7eca4a5b
      Jiri Denemark 提交于
      Most of the APIs in CPU driver do not expect to get NULL for input
      parameters. Let's mark them with ATTRIBUTE_NONNULL and also check for
      some members of virCPUDef when the APIs expect them have some specific
      values.
      Signed-off-by: NJiri Denemark <jdenemar@redhat.com>
      7eca4a5b
    • J
      cpu: Add documentation for CPU driver APIs · a1b1fcdc
      Jiri Denemark 提交于
      Signed-off-by: NJiri Denemark <jdenemar@redhat.com>
      a1b1fcdc
  12. 09 4月, 2014 1 次提交
    • J
      Fix build on mingw32 · 5dfcd6fb
      Ján Tomko 提交于
      My commit 897808e7 added a parameter to virCgroupGetPercpuStats,
      but didn't change the stub for systems where cgroups are not supported.
      5dfcd6fb