Don't require encryption password for 'qemu-img info' command
The encryption password is only required if I/O is going to be
performed on a disk image. The 'qemu-img info' command merely
reports metadata, so it should not ask for a decryption password
Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
(cherry picked from commit f0536bb848
)
Conflicts:
qemu-img.c
Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
This commit is contained in:
parent
7cf7e305cc
commit
f9f552e80b
21
qemu-img.c
21
qemu-img.c
|
@ -221,7 +221,8 @@ static int print_block_option_help(const char *filename, const char *fmt)
|
||||||
|
|
||||||
static BlockDriverState *bdrv_new_open(const char *filename,
|
static BlockDriverState *bdrv_new_open(const char *filename,
|
||||||
const char *fmt,
|
const char *fmt,
|
||||||
int flags)
|
int flags,
|
||||||
|
bool require_io)
|
||||||
{
|
{
|
||||||
BlockDriverState *bs;
|
BlockDriverState *bs;
|
||||||
BlockDriver *drv;
|
BlockDriver *drv;
|
||||||
|
@ -246,7 +247,7 @@ static BlockDriverState *bdrv_new_open(const char *filename,
|
||||||
goto fail;
|
goto fail;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (bdrv_is_encrypted(bs)) {
|
if (bdrv_is_encrypted(bs) && require_io) {
|
||||||
printf("Disk image '%s' is encrypted.\n", filename);
|
printf("Disk image '%s' is encrypted.\n", filename);
|
||||||
if (read_password(password, sizeof(password)) < 0) {
|
if (read_password(password, sizeof(password)) < 0) {
|
||||||
error_report("No password given");
|
error_report("No password given");
|
||||||
|
@ -413,7 +414,7 @@ static int img_check(int argc, char **argv)
|
||||||
}
|
}
|
||||||
filename = argv[optind++];
|
filename = argv[optind++];
|
||||||
|
|
||||||
bs = bdrv_new_open(filename, fmt, flags);
|
bs = bdrv_new_open(filename, fmt, flags, true);
|
||||||
if (!bs) {
|
if (!bs) {
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
@ -520,7 +521,7 @@ static int img_commit(int argc, char **argv)
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
bs = bdrv_new_open(filename, fmt, flags);
|
bs = bdrv_new_open(filename, fmt, flags, true);
|
||||||
if (!bs) {
|
if (!bs) {
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
@ -762,7 +763,7 @@ static int img_convert(int argc, char **argv)
|
||||||
|
|
||||||
total_sectors = 0;
|
total_sectors = 0;
|
||||||
for (bs_i = 0; bs_i < bs_n; bs_i++) {
|
for (bs_i = 0; bs_i < bs_n; bs_i++) {
|
||||||
bs[bs_i] = bdrv_new_open(argv[optind + bs_i], fmt, BDRV_O_FLAGS);
|
bs[bs_i] = bdrv_new_open(argv[optind + bs_i], fmt, BDRV_O_FLAGS, true);
|
||||||
if (!bs[bs_i]) {
|
if (!bs[bs_i]) {
|
||||||
error_report("Could not open '%s'", argv[optind + bs_i]);
|
error_report("Could not open '%s'", argv[optind + bs_i]);
|
||||||
ret = -1;
|
ret = -1;
|
||||||
|
@ -881,7 +882,7 @@ static int img_convert(int argc, char **argv)
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
out_bs = bdrv_new_open(out_filename, out_fmt, flags);
|
out_bs = bdrv_new_open(out_filename, out_fmt, flags, true);
|
||||||
if (!out_bs) {
|
if (!out_bs) {
|
||||||
ret = -1;
|
ret = -1;
|
||||||
goto out;
|
goto out;
|
||||||
|
@ -1135,7 +1136,7 @@ static int img_info(int argc, char **argv)
|
||||||
}
|
}
|
||||||
filename = argv[optind++];
|
filename = argv[optind++];
|
||||||
|
|
||||||
bs = bdrv_new_open(filename, fmt, BDRV_O_FLAGS | BDRV_O_NO_BACKING);
|
bs = bdrv_new_open(filename, fmt, BDRV_O_FLAGS | BDRV_O_NO_BACKING, false);
|
||||||
if (!bs) {
|
if (!bs) {
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
@ -1248,7 +1249,7 @@ static int img_snapshot(int argc, char **argv)
|
||||||
filename = argv[optind++];
|
filename = argv[optind++];
|
||||||
|
|
||||||
/* Open the image */
|
/* Open the image */
|
||||||
bs = bdrv_new_open(filename, NULL, bdrv_oflags);
|
bs = bdrv_new_open(filename, NULL, bdrv_oflags, true);
|
||||||
if (!bs) {
|
if (!bs) {
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
@ -1366,7 +1367,7 @@ static int img_rebase(int argc, char **argv)
|
||||||
* Ignore the old backing file for unsafe rebase in case we want to correct
|
* Ignore the old backing file for unsafe rebase in case we want to correct
|
||||||
* the reference to a renamed or moved backing file.
|
* the reference to a renamed or moved backing file.
|
||||||
*/
|
*/
|
||||||
bs = bdrv_new_open(filename, fmt, flags);
|
bs = bdrv_new_open(filename, fmt, flags, true);
|
||||||
if (!bs) {
|
if (!bs) {
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
@ -1639,7 +1640,7 @@ static int img_resize(int argc, char **argv)
|
||||||
n = qemu_opt_get_size(param, BLOCK_OPT_SIZE, 0);
|
n = qemu_opt_get_size(param, BLOCK_OPT_SIZE, 0);
|
||||||
qemu_opts_del(param);
|
qemu_opts_del(param);
|
||||||
|
|
||||||
bs = bdrv_new_open(filename, fmt, BDRV_O_FLAGS | BDRV_O_RDWR);
|
bs = bdrv_new_open(filename, fmt, BDRV_O_FLAGS | BDRV_O_RDWR, true);
|
||||||
if (!bs) {
|
if (!bs) {
|
||||||
ret = -1;
|
ret = -1;
|
||||||
goto out;
|
goto out;
|
||||||
|
|
Loading…
Reference in New Issue