[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PULL 29/29] qemu-img: Allow cache mode specification for a
From: |
Kevin Wolf |
Subject: |
[Qemu-devel] [PULL 29/29] qemu-img: Allow cache mode specification for amend |
Date: |
Fri, 22 Aug 2014 16:51:53 +0200 |
From: Max Reitz <address@hidden>
qemu-img amend may extensively modify the target image, depending on the
options to be amended (e.g. conversion to qcow2 compat level 0.10 from
1.1 for an image with many unallocated zero clusters). Therefore it
makes sense to allow the user to specify the cache mode to be used.
Signed-off-by: Max Reitz <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>
---
qemu-img-cmds.hx | 4 ++--
qemu-img.c | 19 +++++++++++++++----
qemu-img.texi | 2 +-
3 files changed, 18 insertions(+), 7 deletions(-)
diff --git a/qemu-img-cmds.hx b/qemu-img-cmds.hx
index 48df0b8..55aec6b 100644
--- a/qemu-img-cmds.hx
+++ b/qemu-img-cmds.hx
@@ -70,8 +70,8 @@ STEXI
ETEXI
DEF("amend", img_amend,
- "amend [-q] [-f fmt] -o options filename")
+ "amend [-q] [-f fmt] [-t cache] -o options filename")
STEXI
address@hidden amend [-q] [-f @var{fmt}] -o @var{options} @var{filename}
address@hidden amend [-q] [-f @var{fmt}] [-t @var{cache}] -o @var{options}
@var{filename}
@end table
ETEXI
diff --git a/qemu-img.c b/qemu-img.c
index df85405..c843420 100644
--- a/qemu-img.c
+++ b/qemu-img.c
@@ -2778,12 +2778,14 @@ static int img_amend(int argc, char **argv)
char *options = NULL;
QemuOptsList *create_opts = NULL;
QemuOpts *opts = NULL;
- const char *fmt = NULL, *filename;
+ const char *fmt = NULL, *filename, *cache;
+ int flags;
bool quiet = false;
BlockDriverState *bs = NULL;
+ cache = BDRV_DEFAULT_CACHE;
for (;;) {
- c = getopt(argc, argv, "hqf:o:");
+ c = getopt(argc, argv, "ho:f:t:q");
if (c == -1) {
break;
}
@@ -2810,6 +2812,9 @@ static int img_amend(int argc, char **argv)
case 'f':
fmt = optarg;
break;
+ case 't':
+ cache = optarg;
+ break;
case 'q':
quiet = true;
break;
@@ -2832,8 +2837,14 @@ static int img_amend(int argc, char **argv)
error_exit("Expecting one image file name");
}
- bs = bdrv_new_open("image", filename, fmt,
- BDRV_O_FLAGS | BDRV_O_RDWR, true, quiet);
+ flags = BDRV_O_FLAGS | BDRV_O_RDWR;
+ ret = bdrv_parse_cache_flags(cache, &flags);
+ if (ret < 0) {
+ error_report("Invalid cache option: %s", cache);
+ goto out;
+ }
+
+ bs = bdrv_new_open("image", filename, fmt, flags, true, quiet);
if (!bs) {
error_report("Could not open image '%s'", filename);
ret = -1;
diff --git a/qemu-img.texi b/qemu-img.texi
index 688b28d..cb68948 100644
--- a/qemu-img.texi
+++ b/qemu-img.texi
@@ -397,7 +397,7 @@ After using this command to grow a disk image, you must use
file system and
partitioning tools inside the VM to actually begin using the new space on the
device.
address@hidden amend [-f @var{fmt}] -o @var{options} @var{filename}
address@hidden amend [-f @var{fmt}] [-t @var{cache}] -o @var{options}
@var{filename}
Amends the image format specific @var{options} for the image file
@var{filename}. Not all file formats support this operation.
--
1.8.3.1
- [Qemu-devel] [PULL 19/29] nbd: Implement bdrv_refresh_filename(), (continued)
- [Qemu-devel] [PULL 19/29] nbd: Implement bdrv_refresh_filename(), Kevin Wolf, 2014/08/22
- [Qemu-devel] [PULL 21/29] iotests: Add test for image filename construction, Kevin Wolf, 2014/08/22
- [Qemu-devel] [PULL 22/29] block/vvfat.c: remove debugging code to reinit stderr if NULL, Kevin Wolf, 2014/08/22
- [Qemu-devel] [PULL 20/29] quorum: Implement bdrv_refresh_filename(), Kevin Wolf, 2014/08/22
- [Qemu-devel] [PULL 24/29] raw-posix: fix O_DIRECT short reads, Kevin Wolf, 2014/08/22
- [Qemu-devel] [PULL 23/29] block/iscsi: fix memory corruption on iscsi resize, Kevin Wolf, 2014/08/22
- [Qemu-devel] [PULL 25/29] qemu-iotests: add test case 101 for short file I/O, Kevin Wolf, 2014/08/22
- [Qemu-devel] [PULL 26/29] blkdebug: Delete BH in bdrv_aio_cancel, Kevin Wolf, 2014/08/22
- [Qemu-devel] [PULL 27/29] vmdk: Use bdrv_nb_sectors() where sectors, not bytes are wanted, Kevin Wolf, 2014/08/22
- [Qemu-devel] [PULL 28/29] qemu-img: Allow source cache mode specification, Kevin Wolf, 2014/08/22
- [Qemu-devel] [PULL 29/29] qemu-img: Allow cache mode specification for amend,
Kevin Wolf <=
- Re: [Qemu-devel] [PULL 00/29] Block patches, Daniel H Barboza, 2014/08/22
- Re: [Qemu-devel] [PULL 00/29] Block patches, Peter Maydell, 2014/08/22