From: Jes.Sorensen@redhat.com
To: kwolf@redhat.com
Cc: qemu-devel@nongnu.org
Subject: [Qemu-devel] [PATCH 1/1] qemu-img.c: Clean up handling of image size in img_create()
Date: Tue, 7 Dec 2010 18:39:46 +0100 [thread overview]
Message-ID: <1291743586-3518-1-git-send-email-Jes.Sorensen@redhat.com> (raw)
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 | 19 +++++++++++--------
1 files changed, 11 insertions(+), 8 deletions(-)
diff --git a/qemu-img.c b/qemu-img.c
index d146d8c..eaec725 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 = 0;
const char *fmt = "raw";
const char *base_fmt = NULL;
const char *filename;
@@ -329,6 +330,11 @@ static int img_create(int argc, char **argv)
}
filename = argv[optind++];
+ /* Get image size, if specified */
+ if (optind < argc) {
+ img_size = strtosz(argv[optind++], NULL);
+ }
+
if (options && !strcmp(options, "?")) {
ret = print_block_option_help(filename, fmt);
goto out;
@@ -356,7 +362,6 @@ 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);
/* Parse -o options */
if (options) {
@@ -368,21 +373,19 @@ 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) {
goto out;
}
+ if (img_size) {
+ set_option_parameter_int(param, BLOCK_OPT_SIZE, img_size);
+ }
+
// The size for the image must always be specified, with one exception:
// If we are using a backing file, we can obtain the size from there
- if (get_option_parameter(param, BLOCK_OPT_SIZE)->value.n == -1) {
-
+ if (get_option_parameter(param, BLOCK_OPT_SIZE)->value.n == 0) {
QEMUOptionParameter *backing_file =
get_option_parameter(param, BLOCK_OPT_BACKING_FILE);
QEMUOptionParameter *backing_fmt =
--
1.7.3.2
next reply other threads:[~2010-12-07 17:39 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-12-07 17:39 Jes.Sorensen [this message]
2010-12-07 20:36 ` [Qemu-devel] [PATCH 1/1] qemu-img.c: Clean up handling of image size in img_create() Stefan Hajnoczi
2010-12-08 6:30 ` Jes Sorensen
2010-12-08 8:54 ` Kevin Wolf
2010-12-08 9:14 ` Jes Sorensen
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=1291743586-3518-1-git-send-email-Jes.Sorensen@redhat.com \
--to=jes.sorensen@redhat.com \
--cc=kwolf@redhat.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).