[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 20/22] qemu-nbd: add --discard option
From: |
Kevin Wolf |
Subject: |
[Qemu-devel] [PATCH 20/22] qemu-nbd: add --discard option |
Date: |
Fri, 22 Feb 2013 22:23:49 +0100 |
From: Paolo Bonzini <address@hidden>
Similar to --cache and --aio, this option mimics the discard suboption
of "-drive".
Signed-off-by: Paolo Bonzini <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>
---
qemu-nbd.c | 18 +++++++++++++++---
qemu-nbd.texi | 4 ++++
2 files changed, 19 insertions(+), 3 deletions(-)
diff --git a/qemu-nbd.c b/qemu-nbd.c
index 0a6091b..e7268d0 100644
--- a/qemu-nbd.c
+++ b/qemu-nbd.c
@@ -33,9 +33,10 @@
#include <libgen.h>
#include <pthread.h>
-#define SOCKET_PATH "/var/lock/qemu-nbd-%s"
-#define QEMU_NBD_OPT_CACHE 1
-#define QEMU_NBD_OPT_AIO 2
+#define SOCKET_PATH "/var/lock/qemu-nbd-%s"
+#define QEMU_NBD_OPT_CACHE 1
+#define QEMU_NBD_OPT_AIO 2
+#define QEMU_NBD_OPT_DISCARD 3
static NBDExport *exp;
static int verbose;
@@ -330,6 +331,7 @@ int main(int argc, char **argv)
#ifdef CONFIG_LINUX_AIO
{ "aio", 1, NULL, QEMU_NBD_OPT_AIO },
#endif
+ { "discard", 1, NULL, QEMU_NBD_OPT_DISCARD },
{ "shared", 1, NULL, 'e' },
{ "persistent", 0, NULL, 't' },
{ "verbose", 0, NULL, 'v' },
@@ -344,6 +346,7 @@ int main(int argc, char **argv)
int ret;
int fd;
bool seen_cache = false;
+ bool seen_discard = false;
#ifdef CONFIG_LINUX_AIO
bool seen_aio = false;
#endif
@@ -389,6 +392,15 @@ int main(int argc, char **argv)
}
break;
#endif
+ case QEMU_NBD_OPT_DISCARD:
+ if (seen_discard) {
+ errx(EXIT_FAILURE, "--discard can only be specified once");
+ }
+ seen_discard = true;
+ if (bdrv_parse_discard_flags(optarg, &flags) == -1) {
+ errx(EXIT_FAILURE, "Invalid discard mode `%s'", optarg);
+ }
+ break;
case 'b':
bindto = optarg;
break;
diff --git a/qemu-nbd.texi b/qemu-nbd.texi
index 3e57200..5f3f3e3 100644
--- a/qemu-nbd.texi
+++ b/qemu-nbd.texi
@@ -35,6 +35,10 @@ Export QEMU disk image using NBD protocol.
@item address@hidden
choose asynchronous I/O mode between @samp{threads} (the default)
and @samp{native} (Linux only).
address@hidden address@hidden
+ toggles whether @dfn{discard} (also known as @dfn{trim} or @dfn{unmap})
+ requests are ignored or passed to the filesystem. The default is no
+ (@samp{--discard=ignore}).
@item -c, address@hidden
connect @var{filename} to NBD device @var{dev}
@item -d, --disconnect
--
1.8.1.2
- [Qemu-devel] [PATCH 12/22] qemu-img: Add compare subcommand, (continued)
- [Qemu-devel] [PATCH 12/22] qemu-img: Add compare subcommand, Kevin Wolf, 2013/02/22
- [Qemu-devel] [PATCH 11/22] qemu-img: Add "Quiet mode" option, Kevin Wolf, 2013/02/22
- [Qemu-devel] [PATCH 15/22] coroutine: move pooling to common code, Kevin Wolf, 2013/02/22
- [Qemu-devel] [PATCH 13/22] qemu-iotests: Add qemu-img compare test, Kevin Wolf, 2013/02/22
- [Qemu-devel] [PATCH 16/22] coroutine: trim down nesting level in perf_nesting test, Kevin Wolf, 2013/02/22
- [Qemu-devel] [PATCH 17/22] block: complete all IOs before .bdrv_truncate, Kevin Wolf, 2013/02/22
- [Qemu-devel] [PATCH 19/22] blockdev: add discard suboption to -drive, Kevin Wolf, 2013/02/22
- [Qemu-devel] [PATCH 18/22] block: implement BDRV_O_UNMAP, Kevin Wolf, 2013/02/22
- [Qemu-devel] [PATCH 21/22] blockdev: enable discard by default, Kevin Wolf, 2013/02/22
- [Qemu-devel] [PATCH 14/22] qemu-iotests: Test qcow2 image creation options, Kevin Wolf, 2013/02/22
- [Qemu-devel] [PATCH 20/22] qemu-nbd: add --discard option,
Kevin Wolf <=
- [Qemu-devel] [PATCH 22/22] pc: add compatibility machine types for 1.4, Kevin Wolf, 2013/02/22