]>
Commit | Line | Data |
---|---|---|
46598e97 AD |
1 | From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 |
2 | From: Alexandre Derumier <aderumier@odiso.com> | |
3 | Date: Wed, 21 Mar 2018 08:51:34 +0100 | |
4 | Subject: [PATCH] qemu-img dd : add -n skip_create | |
5 | ||
6 | --- | |
7 | qemu-img.c | 23 ++++++++++++++--------- | |
8 | 1 file changed, 14 insertions(+), 9 deletions(-) | |
9 | ||
10 | diff --git a/qemu-img.c b/qemu-img.c | |
9b05d1d4 | 11 | index e23285d7d4..b3f17184ac 100644 |
46598e97 AD |
12 | --- a/qemu-img.c |
13 | +++ b/qemu-img.c | |
9b05d1d4 | 14 | @@ -4239,7 +4239,7 @@ static int img_dd(int argc, char **argv) |
46598e97 AD |
15 | const char *fmt = NULL; |
16 | int64_t size = 0, readsize = 0; | |
17 | int64_t block_count = 0, out_pos, in_pos; | |
18 | - bool force_share = false; | |
19 | + bool force_share = false, skip_create = false; | |
20 | struct DdInfo dd = { | |
21 | .flags = 0, | |
22 | .count = 0, | |
9b05d1d4 | 23 | @@ -4277,7 +4277,7 @@ static int img_dd(int argc, char **argv) |
46598e97 AD |
24 | { 0, 0, 0, 0 } |
25 | }; | |
26 | ||
27 | - while ((c = getopt_long(argc, argv, ":hf:O:U", long_options, NULL))) { | |
28 | + while ((c = getopt_long(argc, argv, ":hf:O:U:n", long_options, NULL))) { | |
29 | if (c == EOF) { | |
30 | break; | |
31 | } | |
9b05d1d4 | 32 | @@ -4297,6 +4297,9 @@ static int img_dd(int argc, char **argv) |
46598e97 AD |
33 | case 'h': |
34 | help(); | |
35 | break; | |
36 | + case 'n': | |
37 | + skip_create = true; | |
38 | + break; | |
39 | case 'U': | |
40 | force_share = true; | |
41 | break; | |
9b05d1d4 | 42 | @@ -4437,13 +4440,15 @@ static int img_dd(int argc, char **argv) |
46598e97 AD |
43 | size - in.bsz * in.offset, &error_abort); |
44 | } | |
45 | ||
46 | - ret = bdrv_create(drv, out.filename, opts, &local_err); | |
47 | - if (ret < 0) { | |
48 | - error_reportf_err(local_err, | |
49 | - "%s: error while creating output image: ", | |
50 | - out.filename); | |
51 | - ret = -1; | |
52 | - goto out; | |
53 | + if (!skip_create) { | |
54 | + ret = bdrv_create(drv, out.filename, opts, &local_err); | |
55 | + if (ret < 0) { | |
56 | + error_reportf_err(local_err, | |
57 | + "%s: error while creating output image: ", | |
58 | + out.filename); | |
59 | + ret = -1; | |
60 | + goto out; | |
61 | + } | |
62 | } | |
63 | ||
64 | /* TODO, we can't honour --image-opts for the target, | |
65 | -- | |
66 | 2.11.0 | |
67 |