* [Qemu-devel] [PATCH v3 1/1] qemu-img.c: Clean up handling of image size in img_create()
@ 2010-12-09 9:45 Jes.Sorensen
2010-12-09 10:20 ` [Qemu-devel] " Kevin Wolf
0 siblings, 1 reply; 2+ messages in thread
From: Jes.Sorensen @ 2010-12-09 9:45 UTC (permalink / raw)
To: kwolf; +Cc: stefanha, qemu-devel
From: Jes Sorensen <Jes.Sorensen@redhat.com>
This cleans up the handling of image size in img_create() by parsing
the value early, and then only setting it once if a value has been
added as the last argument to the command line.
Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com>
---
qemu-img.c | 23 +++++++++++++++++------
1 files changed, 17 insertions(+), 6 deletions(-)
diff --git a/qemu-img.c b/qemu-img.c
index d146d8c..d9667a2 100644
--- a/qemu-img.c
+++ b/qemu-img.c
@@ -282,6 +282,7 @@ static int add_old_style_options(const char *fmt, QEMUOptionParameter *list,
static int img_create(int argc, char **argv)
{
int c, ret = 0;
+ uint64_t img_size = -1;
const char *fmt = "raw";
const char *base_fmt = NULL;
const char *filename;
@@ -329,6 +330,20 @@ static int img_create(int argc, char **argv)
}
filename = argv[optind++];
+ /* Get image size, if specified */
+ if (optind < argc) {
+ ssize_t sval;
+ sval = strtosz(argv[optind++], NULL);
+ if (sval < 0) {
+ error("Invalid image size specified! You may use k, M, G or "
+ "T suffixes for ");
+ error("kilobytes, megabytes, gigabytes and terabytes.");
+ ret = -1;
+ goto out;
+ }
+ img_size = (uint64_t)sval;
+ }
+
if (options && !strcmp(options, "?")) {
ret = print_block_option_help(filename, fmt);
goto out;
@@ -356,7 +371,8 @@ static int img_create(int argc, char **argv)
/* Create parameter list with default values */
param = parse_option_parameters("", create_options, param);
- set_option_parameter_int(param, BLOCK_OPT_SIZE, -1);
+
+ set_option_parameter_int(param, BLOCK_OPT_SIZE, img_size);
/* Parse -o options */
if (options) {
@@ -368,11 +384,6 @@ static int img_create(int argc, char **argv)
}
}
- /* Add size to parameters */
- if (optind < argc) {
- set_option_parameter(param, BLOCK_OPT_SIZE, argv[optind++]);
- }
-
/* Add old-style options to parameters */
ret = add_old_style_options(fmt, param, base_filename, base_fmt);
if (ret < 0) {
--
1.7.3.2
^ permalink raw reply related [flat|nested] 2+ messages in thread
end of thread, other threads:[~2010-12-09 10:19 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-12-09 9:45 [Qemu-devel] [PATCH v3 1/1] qemu-img.c: Clean up handling of image size in img_create() Jes.Sorensen
2010-12-09 10:20 ` [Qemu-devel] " Kevin Wolf
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).