From fd04a2aedae37dc9f481225f445d04bddd1590b0 Mon Sep 17 00:00:00 2001 From: Shahar Havivi Date: Sat, 6 Mar 2010 00:26:13 +0200 Subject: [PATCH] Wrong error message in block_passwd command Signed-off-by: Shahar Havivi Signed-off-by: Anthony Liguori --- block.c | 7 +++++-- monitor.c | 7 ++++++- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/block.c b/block.c index 31d1ba4bfd..e891544dd1 100644 --- a/block.c +++ b/block.c @@ -1134,8 +1134,11 @@ int bdrv_set_key(BlockDriverState *bs, const char *key) if (!bs->encrypted) return 0; } - if (!bs->encrypted || !bs->drv || !bs->drv->bdrv_set_key) - return -1; + if (!bs->encrypted) { + return -EINVAL; + } else if (!bs->drv || !bs->drv->bdrv_set_key) { + return -ENOMEDIUM; + } ret = bs->drv->bdrv_set_key(bs, key); if (ret < 0) { bs->valid_key = 0; diff --git a/monitor.c b/monitor.c index f0ec84d52f..0448a70c10 100644 --- a/monitor.c +++ b/monitor.c @@ -1057,6 +1057,7 @@ static int do_block_set_passwd(Monitor *mon, const QDict *qdict, QObject **ret_data) { BlockDriverState *bs; + int err; bs = bdrv_find(qdict_get_str(qdict, "device")); if (!bs) { @@ -1064,7 +1065,11 @@ static int do_block_set_passwd(Monitor *mon, const QDict *qdict, return -1; } - if (bdrv_set_key(bs, qdict_get_str(qdict, "password")) < 0) { + err = bdrv_set_key(bs, qdict_get_str(qdict, "password")); + if (err == -EINVAL) { + qerror_report(QERR_DEVICE_NOT_ENCRYPTED, bdrv_get_device_name(bs)); + return -1; + } else if (err < 0) { qerror_report(QERR_INVALID_PASSWORD); return -1; }