]> git.proxmox.com Git - mirror_qemu.git/commitdiff
blockdev: Implement eject with basic operations
authorMax Reitz <mreitz@redhat.com>
Mon, 26 Oct 2015 20:39:12 +0000 (21:39 +0100)
committerKevin Wolf <kwolf@redhat.com>
Wed, 11 Nov 2015 15:22:47 +0000 (16:22 +0100)
Implement 'eject' by calling blockdev-open-tray and
blockdev-remove-medium.

Signed-off-by: Max Reitz <mreitz@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
blockdev.c

index 0f2a7e298840231b70e9da6dd9061568f59342d5..16242972961ae99996d414768fdd599d8cd21e81 100644 (file)
@@ -1980,16 +1980,15 @@ out:
 
 void qmp_eject(const char *device, bool has_force, bool force, Error **errp)
 {
-    BlockBackend *blk;
+    Error *local_err = NULL;
 
-    blk = blk_by_name(device);
-    if (!blk) {
-        error_set(errp, ERROR_CLASS_DEVICE_NOT_FOUND,
-                  "Device '%s' not found", device);
+    qmp_blockdev_open_tray(device, has_force, force, &local_err);
+    if (local_err) {
+        error_propagate(errp, local_err);
         return;
     }
 
-    eject_device(blk, force, errp);
+    qmp_blockdev_remove_medium(device, errp);
 }
 
 void qmp_block_passwd(bool has_device, const char *device,