qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Justin Ossevoort <justin@quarantainenet.nl>
To: qemu-devel@nongnu.org
Cc: mdroth@linux.vnet.ibm.com, Justin Ossevoort <justin@quarantainenet.nl>
Subject: [Qemu-devel] [PATCH v3 0/2] Fix guest-fstrim behaviour
Date: Thu, 30 Apr 2015 16:29:56 +0200	[thread overview]
Message-ID: <1430404198-10324-1-git-send-email-justin@quarantainenet.nl> (raw)

The qemu-ga 'guest-fstrim' command is currently not working properly.

There are 2 issues:
- The current implementation reuses a struct between ioctl() calls without
  reinitialising it's fields. This struct however is updated to reflect
  the result of the trim operation.
  Therefor only the first filesystem is thoroughly trimmed, the rest is only
  trimmed up to the amount that was trimmed by the previous filesystem.
- The current implementation will return an error if some filesystem returned
  an unexpected error. The first issue consistently causes this issue when
  the 'guest-fstrim' is performed multiple times in a row when multiple
  filesystems are being trimmed, as this causes a trim request for at most
  0 bytes, which is an error.

The first patch fixes the first issue by explicitly resetting the struct used
to perform the trim ioctl for each path. This is a pretty mundane change and
fixes most use-cases.

The second patch fixes the second issue by changing the returned value to
return a per-path result. This way all paths are always trimmed and dependening
on the outcome of the ioctl an error or some details about the trim are
returned.

There was an earlier request to mirror the fields from the 'guest-fsinfo'
operation. The trim operation however need not happen at the mountpoint level.
A logical future improvement would be to allow the caller to supply an optional
list of paths they want to trim, without needing to have intimate details about
the filesystem layout of the guest.

Justin Ossevoort (2):
  qga/commands-posix: Fix bug in guest-fstrim
  qga/commands-posix: Return per path fstrim result

 qga/commands-posix.c | 63 ++++++++++++++++++++++++++++++++++++----------------
 qga/qapi-schema.json | 32 +++++++++++++++++++++++---
 2 files changed, 73 insertions(+), 22 deletions(-)

-- 
2.1.4

             reply	other threads:[~2015-04-30 14:30 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-04-30 14:29 Justin Ossevoort [this message]
2015-04-30 14:29 ` [Qemu-devel] [PATCH v3 1/2] qga/commands-posix: Fix bug in guest-fstrim Justin Ossevoort
2015-04-30 14:45   ` Thomas Huth
2015-04-30 14:29 ` [Qemu-devel] [PATCH v3 2/2] qga/commands-posix: Return per path fstrim result Justin Ossevoort
2015-04-30 16:35   ` Thomas Huth
2015-05-01 11:56     ` Justin Ossevoort

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1430404198-10324-1-git-send-email-justin@quarantainenet.nl \
    --to=justin@quarantainenet.nl \
    --cc=mdroth@linux.vnet.ibm.com \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).