blockdev.c (c13163fba151f0be5176eaf55907bc1dbff3a1d4) | blockdev.c (12d3ba821da9f8a039240a8a1bc01e27a12f9c22) |
---|---|
1/* 2 * QEMU host block devices 3 * 4 * Copyright (c) 2003-2008 Fabrice Bellard 5 * 6 * This work is licensed under the terms of the GNU GPL, version 2 or 7 * later. See the COPYING file in the top-level directory. 8 * --- 1467 unchanged lines hidden (view full) --- 1476 if (!bs) { 1477 error_set(errp, QERR_DEVICE_NOT_FOUND, device); 1478 return; 1479 } 1480 1481 eject_device(bs, force, errp); 1482} 1483 | 1/* 2 * QEMU host block devices 3 * 4 * Copyright (c) 2003-2008 Fabrice Bellard 5 * 6 * This work is licensed under the terms of the GNU GPL, version 2 or 7 * later. See the COPYING file in the top-level directory. 8 * --- 1467 unchanged lines hidden (view full) --- 1476 if (!bs) { 1477 error_set(errp, QERR_DEVICE_NOT_FOUND, device); 1478 return; 1479 } 1480 1481 eject_device(bs, force, errp); 1482} 1483 |
1484void qmp_block_passwd(const char *device, const char *password, Error **errp) | 1484void qmp_block_passwd(bool has_device, const char *device, 1485 bool has_node_name, const char *node_name, 1486 const char *password, Error **errp) |
1485{ | 1487{ |
1488 Error *local_err = NULL; |
|
1486 BlockDriverState *bs; 1487 int err; 1488 | 1489 BlockDriverState *bs; 1490 int err; 1491 |
1489 bs = bdrv_find(device); 1490 if (!bs) { 1491 error_set(errp, QERR_DEVICE_NOT_FOUND, device); | 1492 bs = bdrv_lookup_bs(has_device ? device : NULL, 1493 has_node_name ? node_name : NULL, 1494 &local_err); 1495 if (error_is_set(&local_err)) { 1496 error_propagate(errp, local_err); |
1492 return; 1493 } 1494 1495 err = bdrv_set_key(bs, password); 1496 if (err == -EINVAL) { 1497 error_set(errp, QERR_DEVICE_NOT_ENCRYPTED, bdrv_get_device_name(bs)); 1498 return; 1499 } else if (err < 0) { --- 875 unchanged lines hidden --- | 1497 return; 1498 } 1499 1500 err = bdrv_set_key(bs, password); 1501 if (err == -EINVAL) { 1502 error_set(errp, QERR_DEVICE_NOT_ENCRYPTED, bdrv_get_device_name(bs)); 1503 return; 1504 } else if (err < 0) { --- 875 unchanged lines hidden --- |