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 ---