qemu-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-commits] [qemu/qemu] 73a652: qga/commands-posix: Fix bug in guest-


From: GitHub
Subject: [Qemu-commits] [qemu/qemu] 73a652: qga/commands-posix: Fix bug in guest-fstrim
Date: Wed, 08 Jul 2015 06:00:03 -0700

  Branch: refs/heads/master
  Home:   https://github.com/qemu/qemu
  Commit: 73a652a1b08445e8d91e50cdbb2da50e571c61b3
      
https://github.com/qemu/qemu/commit/73a652a1b08445e8d91e50cdbb2da50e571c61b3
  Author: Justin Ossevoort <address@hidden>
  Date:   2015-07-07 (Tue, 07 Jul 2015)

  Changed paths:
    M qga/commands-posix.c

  Log Message:
  -----------
  qga/commands-posix: Fix bug in guest-fstrim

The FITRIM ioctl updates the fstrim_range structure it receives. This
way the caller can determine how many bytes were trimmed. The
guest-fstrim logic reuses the same fstrim_range for each filesystem,
effectively limiting each filesystem to trim at most as much as the
previous was able to trim.

If a previous filesystem would have trimmed 0 bytes, than the next
filesystem would report an error 'Invalid argument' because a FITRIM
request with length 0 is not valid.

This change resets the fstrim_range structure for each filesystem.

Signed-off-by: Justin Ossevoort <address@hidden>
Reviewed-by: Thomas Huth <address@hidden>
Signed-off-by: Michael Roth <address@hidden>


  Commit: e82855d9aa4580620773b1b145ecab6ca1f2578c
      
https://github.com/qemu/qemu/commit/e82855d9aa4580620773b1b145ecab6ca1f2578c
  Author: Justin Ossevoort <address@hidden>
  Date:   2015-07-07 (Tue, 07 Jul 2015)

  Changed paths:
    M qga/commands-posix.c
    M qga/commands-win32.c
    M qga/qapi-schema.json

  Log Message:
  -----------
  qga/qmp_guest_fstrim: Return per path fstrim result

The current guest-fstrim support only returns an error if some
mountpoint was unable to be trimmed, skipping any possible additional
mountpoints. The result of the TRIM operation itself is also discarded.

This change returns a per mountpoint result of the TRIM operation. If an
error occurs on some mountpoints that error is returned and the
guest-fstrim continue with any additional mountpoints.

The returned values for errors, minimum and trimmed are dependant on the
filesystem, storage stacks and kernel version.

Signed-off-by: Justin Ossevoort <address@hidden>
* s/type/struct/ in schema type definitions
* moved version annotation for new guest-fstrim return field to
  the field itself rather than applying to the entire command
Signed-off-by: Michael Roth <address@hidden>


  Commit: f300414cfe9bb9e7b86411a670b68c1aa8edbd35
      
https://github.com/qemu/qemu/commit/f300414cfe9bb9e7b86411a670b68c1aa8edbd35
  Author: Markus Armbruster <address@hidden>
  Date:   2015-07-07 (Tue, 07 Jul 2015)

  Changed paths:
    M qga/main.c

  Log Message:
  -----------
  Revert "guest agent: remove g_strcmp0 usage"

Since we now require GLib 2.22+ (commit f40685c), we don't have to
work around lack of g_strcmp0() anymore.

This reverts commit 8f4774789947bc4bc4c8d026a289fe980d3d2ee1.

Conflicts:
        qemu-ga.c

Signed-off-by: Markus Armbruster <address@hidden>
Reviewed-by: John Snow <address@hidden>
Signed-off-by: Michael Roth <address@hidden>


  Commit: 601e5a0618ef3238e18fc38ece55ea4260910d5f
      
https://github.com/qemu/qemu/commit/601e5a0618ef3238e18fc38ece55ea4260910d5f
  Author: Kirk Allan <address@hidden>
  Date:   2015-07-07 (Tue, 07 Jul 2015)

  Changed paths:
    M configure

  Log Message:
  -----------
  qga: add win32 library iphlpapi

Add the iphlpapi library to use APIs such as GetAdaptersInfo and
GetAdaptersAddresses.

Signed-off-by: Kirk Allan <address@hidden>
Signed-off-by: Michael Roth <address@hidden>


  Commit: d6c5528b0ce91667714b8c7dabaf4fbf8a898a9c
      
https://github.com/qemu/qemu/commit/d6c5528b0ce91667714b8c7dabaf4fbf8a898a9c
  Author: Kirk Allan <address@hidden>
  Date:   2015-07-07 (Tue, 07 Jul 2015)

  Changed paths:
    M qga/commands-win32.c

  Log Message:
  -----------
  qga: win32 qmp_guest_network_get_interfaces implementation

By default, IPv4 prefixes will be derived by matching the address
to those returned by GetAdaptersInfo.  IPv6 prefixes can not be
matched this way due to the unpredictable order of entries.

In Windows Vista/2008 guests and newer, both IPv4 and IPv6 prefixes
can be retrieved from OnLinkPrefixLength.  Setting --extra-cflags
in the build configuration to "-D_WIN32_WINNT=0x600"
or greater makes OnLinkPrefixLength available.  Setting --extra-cflags
is not required and if not set, the default approach to get the prefix
will be taken.

Signed-off-by: Kirk Allan <address@hidden>
* drop ws2ipdef.h, it's missing on old mingw, and ws2tcpip.h already
  includes it automatically on new builds
Signed-off-by: Michael Roth <address@hidden>


  Commit: 00d2f3707a63881a0cec8d00cbd467f9b2d8af41
      
https://github.com/qemu/qemu/commit/00d2f3707a63881a0cec8d00cbd467f9b2d8af41
  Author: Marc-André Lureau <address@hidden>
  Date:   2015-07-07 (Tue, 07 Jul 2015)

  Changed paths:
    M qga/commands-posix.c

  Log Message:
  -----------
  qga: fail early for invalid time

It's possible to set system time with dates after 2070, however, it's
not possible to set the RTC. It has limitation to up to year
2070 (1970+100). In order to keep both clock in sync and before the
kernel complains on invalid values, bail out early.

Signed-off-by: Marc-André Lureau <address@hidden>
Signed-off-by: Michael Roth <address@hidden>


  Commit: ef0a03f23061b9994fe5b2c3a208bc9fcba0099d
      
https://github.com/qemu/qemu/commit/ef0a03f23061b9994fe5b2c3a208bc9fcba0099d
  Author: Olga Krishtal <address@hidden>
  Date:   2015-07-07 (Tue, 07 Jul 2015)

  Changed paths:
    M qga/commands-win32.c

  Log Message:
  -----------
  qga: added empty qmp_quest_get_fsinfo functionality.

We need qmp_quest_get_fsinfo togather with vss-provider, which works with
volumes. The call to this function is implemented via
FindFirst/NextVolumes. Moreover, volumes in Windows OS are filesystem unit,
so it will be more effective to work with them rather with devices.

Signed-off-by: Olga Krishtal <address@hidden>
Signed-off-by: Denis V. Lunev <address@hidden>
CC: Eric Blake <address@hidden>
CC: Michael Roth <address@hidden>
Signed-off-by: Michael Roth <address@hidden>


  Commit: d2b3f390d4e4b5d9dd74ae703d365a7b75a234ea
      
https://github.com/qemu/qemu/commit/d2b3f390d4e4b5d9dd74ae703d365a7b75a234ea
  Author: Olga Krishtal <address@hidden>
  Date:   2015-07-07 (Tue, 07 Jul 2015)

  Changed paths:
    M qga/commands-win32.c

  Log Message:
  -----------
  qga: added mountpoint and filesystem type for single volume

We should use GetVolumeXXX api to work with volumes. This will help us to
resolve the situation with volumes without drive letter, i.e. when the
volume is mounted as a folder. Such volume is called mounted folder.
This volume is a regular mounted volume from all other points of view.
The information about non mounted volume is reported as System Reserved.
This volume is not mounted and thus it is not writable.

GuestDiskAddressList API is not used because operations are performed with
volumes but no with disks. This means that spanned disk will
be counted and handled as a single volume. It is worth mentioning
that the information about every disk in the volume can be queried
via IOCTL_VOLUME_GET_VOLUME_DISK_EXTENTS.

Signed-off-by: Olga Krishtal <address@hidden>
Signed-off-by: Denis V. Lunev <address@hidden>
CC: Eric Blake <address@hidden>
CC: Michael Roth <address@hidden>
Signed-off-by: Michael Roth <address@hidden>


  Commit: 50cbebb9a339f43cda2005785010361497151882
      
https://github.com/qemu/qemu/commit/50cbebb9a339f43cda2005785010361497151882
  Author: Michael Roth <address@hidden>
  Date:   2015-07-07 (Tue, 07 Jul 2015)

  Changed paths:
    M configure

  Log Message:
  -----------
  configure: add configure check for ntdddisk.h

This header file provides w32 ioctl definitions for working with disk
devices. Older versions of mingw do not expose this in a useable way,
so add a configure check and report it via CONFIG_QGA_NTDDSCSI.

Subsequent patches will use this macro to stub out functionality that
relies on this in cases where it's not available.

Signed-off-by: Michael Roth <address@hidden>


  Commit: a3ef3b2272d8349c932f8c440bcaa31d8518b1c0
      
https://github.com/qemu/qemu/commit/a3ef3b2272d8349c932f8c440bcaa31d8518b1c0
  Author: Olga Krishtal <address@hidden>
  Date:   2015-07-07 (Tue, 07 Jul 2015)

  Changed paths:
    M qga/commands-win32.c
    M qga/qapi-schema.json

  Log Message:
  -----------
  qga: added bus type and disk location path

According to Microsoft disk location path can be obtained via
IOCTL_SCSI_GET_ADDRESS. Unfortunately this ioctl can not be used for all
devices. There are certain bus types which could be obtained with this
API. Please, refer to the following link for more details
https://technet.microsoft.com/en-us/library/ee851589(v=ws.10).aspx

Bus type could be obtained using IOCTL_STORAGE_QUERY_PROPERTY. Enum
STORAGE_BUS_TYPE describes all buses supported by OS.

Windows defines more bus types than Linux. Thus some values have been added
to GuestDiskBusType.

Signed-off-by: Olga Krishtal <address@hidden>
Signed-off-by: Denis V. Lunev <address@hidden>
CC: Eric Blake <address@hidden>
CC: Michael Roth <address@hidden>
* fixed warning in CreateFile due to use of NULL instead of 0
* only provide disk info when CONFIG_QGA_NTDDSCSI=y
Signed-off-by: Michael Roth <address@hidden>


  Commit: c54e1eb4928d4e6762c7100d1d1ef5f08ddf922b
      
https://github.com/qemu/qemu/commit/c54e1eb4928d4e6762c7100d1d1ef5f08ddf922b
  Author: Michael Roth <address@hidden>
  Date:   2015-07-07 (Tue, 07 Jul 2015)

  Changed paths:
    M configure
    M qga/commands-win32.c

  Log Message:
  -----------
  qga: added GuestPCIAddress information

PCIAddress inforfation is obtained via SetupApi, which provides the
information about address, bus, etc. We look throught entire device tree
in the system and try to find device object for given volume. For this PDO
SetupDiGetDeviceRegistryProperty is called, which reads PCI configuration
for a given devicei if it is possible.

This is the most convinient way for a userspace service. The lookup is
performed for every volume available. However, this information is
not mandatory for vss-provider.

In order to use SetupApi we need to notify linker about it. We do not need
to install additional libs, so we do not make separate configuration
option to use libsetupapi.su

SetupApi gives as the same information as kernel driver
with IRP_MN_QUERY_INTERFACE.
https://support.microsoft.com/en-us/kb/253232

Signed-off-by: Olga Krishtal <address@hidden>
Signed-off-by: Denis V. Lunev <address@hidden>
CC: Eric Blake <address@hidden>
CC: Michael Roth <address@hidden>
* stub out get_pci_info if !CONFIG_QGA_NTDDSCSI
Signed-off-by: Michael Roth <address@hidden>


  Commit: 62a3864eb09414d3cee94a2a592ecd414200912f
      
https://github.com/qemu/qemu/commit/62a3864eb09414d3cee94a2a592ecd414200912f
  Author: Peter Maydell <address@hidden>
  Date:   2015-07-08 (Wed, 08 Jul 2015)

  Changed paths:
    M configure
    M qga/commands-posix.c
    M qga/commands-win32.c
    M qga/main.c
    M qga/qapi-schema.json

  Log Message:
  -----------
  Merge remote-tracking branch 'remotes/mdroth/tags/qga-pull-2015-07-06-v3-tag' 
into staging

tag for qga-pull-2015-07-06-v3

v3:
  - fix missing <windows.h> in configure test program.

v2:
  - added configure check for guest-get-fs-info to avoid breakage on older
    MinGWs
  - removed extraneous include of ws2ipdef.h in w32
    guest-network-get-interfaces. ws2tcpip.h already provides those
    definitions, and older MinGWs don't have it.
  - rebased on latest master

# gpg: Signature made Wed Jul  8 03:01:18 2015 BST using RSA key ID F108B584
# gpg: Good signature from "Michael Roth <address@hidden>"
# gpg:                 aka "Michael Roth <address@hidden>"
# gpg:                 aka "Michael Roth <address@hidden>"
# gpg: WARNING: This key is not certified with sufficiently trusted signatures!
# gpg:          It is not certain that the signature belongs to the owner.
# Primary key fingerprint: CEAC C9E1 5534 EBAB B82D  3FA0 3353 C9CE F108 B584

* remotes/mdroth/tags/qga-pull-2015-07-06-v3-tag:
  qga: added GuestPCIAddress information
  qga: added bus type and disk location path
  configure: add configure check for ntdddisk.h
  qga: added mountpoint and filesystem type for single volume
  qga: added empty qmp_quest_get_fsinfo functionality.
  qga: fail early for invalid time
  qga: win32 qmp_guest_network_get_interfaces implementation
  qga: add win32 library iphlpapi
  Revert "guest agent: remove g_strcmp0 usage"
  qga/qmp_guest_fstrim: Return per path fstrim result
  qga/commands-posix: Fix bug in guest-fstrim

Signed-off-by: Peter Maydell <address@hidden>


Compare: https://github.com/qemu/qemu/compare/59dc0a1e9b4c...62a3864eb094

reply via email to

[Prev in Thread] Current Thread [Next in Thread]