All of lore.kernel.org
 help / color / mirror / Atom feed
From: Markus Armbruster <armbru@redhat.com>
To: Luiz Capitulino <lcapitulino@redhat.com>
Cc: kwolf@redhat.com, stefano.stabellini@eu.citrix.com,
	dbaryshkov@gmail.com, quintela@redhat.com, qemu-devel@nongnu.org,
	amit.shah@redhat.com
Subject: Re: [Qemu-devel] [PATCH 23/55] block: Show whether the guest ejected the medium in info block
Date: Thu, 21 Jul 2011 17:08:56 +0200	[thread overview]
Message-ID: <m3zkk7d62f.fsf@blackfin.pond.sub.org> (raw)
In-Reply-To: <20110721112232.28405a1c@doriath> (Luiz Capitulino's message of "Thu, 21 Jul 2011 11:22:32 -0300")

Luiz Capitulino <lcapitulino@redhat.com> writes:

> On Wed, 20 Jul 2011 18:23:57 +0200
> Markus Armbruster <armbru@redhat.com> wrote:
>
>> Need to ask the device, so this requires new BlockDevOps member
>> is_medium_ejected().
>> 
>> Signed-off-by: Markus Armbruster <armbru@redhat.com>
>> ---
>>  block.c         |   18 ++++++++++++++++--
>>  block.h         |    6 ++++++
>>  hw/ide/core.c   |    6 ++++++
>>  hw/scsi-disk.c  |   10 ++++++++++
>>  qmp-commands.hx |    1 +
>>  5 files changed, 39 insertions(+), 2 deletions(-)
>> 
>> diff --git a/block.c b/block.c
>> index ba24bf1..6759066 100644
>> --- a/block.c
>> +++ b/block.c
>> @@ -761,6 +761,14 @@ static void bdrv_dev_change_media_cb(BlockDriverState *bs)
>>      }
>>  }
>>  
>> +bool bdrv_dev_is_medium_ejected(BlockDriverState *bs)
>> +{
>> +    if (bs->dev_ops && bs->dev_ops->is_medium_ejected) {
>> +        return bs->dev_ops->is_medium_ejected(bs->dev_opaque);
>> +    }
>> +    return false;
>> +}
>> +
>>  static void bdrv_dev_resize_cb(BlockDriverState *bs)
>>  {
>>      if (bs->dev_ops && bs->dev_ops->resize_cb) {
>> @@ -1712,7 +1720,9 @@ static void bdrv_print_dict(QObject *obj, void *opaque)
>>      if (qdict_get_bool(bs_dict, "removable")) {
>>          monitor_printf(mon, " locked=%d", qdict_get_bool(bs_dict, "locked"));
>>      }
>> -
>> +    if (qdict_get_try_bool(bs_dict, "ejected", false)) {
>> +        monitor_printf(mon, " ejected");
>> +    }
>>      if (qdict_haskey(bs_dict, "inserted")) {
>>          QDict *qdict = qobject_to_qdict(qdict_get(bs_dict, "inserted"));
>>  
>> @@ -1747,15 +1757,19 @@ void bdrv_info(Monitor *mon, QObject **ret_data)
>>  
>>      QTAILQ_FOREACH(bs, &bdrv_states, list) {
>>          QObject *bs_obj;
>> +        QDict *bs_dict;
>>  
>>          bs_obj = qobject_from_jsonf("{ 'device': %s, 'type': 'unknown', "
>>                                      "'removable': %i, 'locked': %i }",
>>                                      bs->device_name, bs->removable,
>>                                      bs->locked);
>> +        bs_dict = qobject_to_qdict(bs_obj);
>>  
>> +        if (bdrv_dev_is_medium_ejected(bs)) {
>> +            qdict_put(bs_dict, "ejected", qbool_from_int(1));
>> +        }
>
> I'd expect 'ejected' to be always present. It's a bool afterall, so it's
> either true or false.
>
> But I see that "ejected=false" might not be ideal. What about calling it
> "inserted" then?

"inserted=true" for disks looks odd to me, but whatever floats your boat
:)

> Also misses QMP documentation.

Last patch hunk.

>>          if (bs->drv) {
>>              QObject *obj;
>> -            QDict *bs_dict = qobject_to_qdict(bs_obj);
>>  
>>              obj = qobject_from_jsonf("{ 'file': %s, 'ro': %i, 'drv': %s, "
>>                                       "'encrypted': %i }",
[...]
>> diff --git a/qmp-commands.hx b/qmp-commands.hx
>> index 92c5c3a..cc5d30f 100644
>> --- a/qmp-commands.hx
>> +++ b/qmp-commands.hx
>> @@ -1070,6 +1070,7 @@ Each json-object contain the following:
>>           - Possible values: "unknown"
>>  - "removable": true if the device is removable, false otherwise (json-bool)
>>  - "locked": true if the device is locked, false otherwise (json-bool)
>> +- "ejected": present and true if the device ejected its media (json-bool)
>>  - "inserted": only present if the device is inserted, it is a json-object
>>     containing the following:
>>           - "file": device file name (json-string)

  parent reply	other threads:[~2011-07-21 15:20 UTC|newest]

Thread overview: 145+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-07-20 16:23 [Qemu-devel] [PATCH 00/55] Block layer cleanup & fixes Markus Armbruster
2011-07-20 16:23 ` [Qemu-devel] [PATCH 01/55] blockdev: Make eject fail for non-removable drives even with -f Markus Armbruster
2011-07-25 12:27   ` Christoph Hellwig
2011-07-20 16:23 ` [Qemu-devel] [PATCH 02/55] block: Reset device model callbacks on detach Markus Armbruster
2011-07-25 12:27   ` Christoph Hellwig
2011-07-20 16:23 ` [Qemu-devel] [PATCH 03/55] block: Attach non-qdev devices as well Markus Armbruster
2011-07-20 16:23 ` [Qemu-devel] [PATCH 04/55] block: Generalize change_cb() to BlockDevOps Markus Armbruster
2011-07-25 12:30   ` Christoph Hellwig
2011-07-20 16:23 ` [Qemu-devel] [PATCH 05/55] block: Split change_cb() into change_media_cb(), resize_cb() Markus Armbruster
2011-07-25 12:31   ` Christoph Hellwig
2011-07-20 16:23 ` [Qemu-devel] [PATCH 06/55] block/raw-win32: Drop disabled code for removable host devices Markus Armbruster
2011-07-25 12:32   ` Christoph Hellwig
2011-07-20 16:23 ` [Qemu-devel] [PATCH 07/55] block: Make BlockDriver method bdrv_set_locked() return void Markus Armbruster
     [not found]   ` <20110721111134.787a83af@doriath>
2011-07-21 15:07     ` Markus Armbruster
2011-07-21 16:34       ` Luiz Capitulino
2011-07-22 14:36       ` Kevin Wolf
2011-07-20 16:23 ` [Qemu-devel] [PATCH 08/55] block: Make BlockDriver method bdrv_eject() " Markus Armbruster
2011-07-22 14:41   ` Kevin Wolf
2011-07-22 15:04     ` Markus Armbruster
2011-07-20 16:23 ` [Qemu-devel] [PATCH 09/55] block: Don't let locked flag prevent medium load Markus Armbruster
2011-07-22 14:51   ` Kevin Wolf
2011-07-22 15:33     ` Markus Armbruster
2011-07-20 16:23 ` [Qemu-devel] [PATCH 10/55] ide: Update command code definitions as per ACS-2 Table B.2 Markus Armbruster
2011-07-25 12:34   ` Christoph Hellwig
2011-07-25 17:15     ` Markus Armbruster
2011-07-20 16:23 ` [Qemu-devel] [PATCH 11/55] ide: Clean up case label indentation in ide_exec_cmd() Markus Armbruster
2011-07-25 12:34   ` Christoph Hellwig
2011-07-20 16:23 ` [Qemu-devel] [PATCH 12/55] ide: Fix ATA command READ to set ATAPI signature for CD-ROM Markus Armbruster
2011-07-26 11:57   ` Christoph Hellwig
2011-07-26 13:33     ` Markus Armbruster
2011-07-20 16:23 ` [Qemu-devel] [PATCH 13/55] ide: Use a table to declare which drive kinds accept each command Markus Armbruster
2011-07-26 11:58   ` Christoph Hellwig
2011-07-20 16:23 ` [Qemu-devel] [PATCH 14/55] ide: Reject ATA commands specific to drive kinds Markus Armbruster
2011-07-26 11:58   ` Christoph Hellwig
2011-07-20 16:23 ` [Qemu-devel] [PATCH 15/55] ide/atapi: Clean up misleading name in cmd_start_stop_unit() Markus Armbruster
2011-07-26 11:59   ` Christoph Hellwig
2011-07-20 16:23 ` [Qemu-devel] [PATCH 16/55] ide/atapi: Track tray open/close state Markus Armbruster
2011-07-26 11:59   ` Christoph Hellwig
2011-07-20 16:23 ` [Qemu-devel] [PATCH 17/55] ide/atapi: Switch from BlockDriverState's tray_open to own Markus Armbruster
2011-07-26 12:00   ` Christoph Hellwig
2011-07-26 13:36     ` Markus Armbruster
2011-07-20 16:23 ` [Qemu-devel] [PATCH 18/55] scsi-disk: Reject CD-specific SCSI commands to disks Markus Armbruster
2011-07-26 12:02   ` Christoph Hellwig
2011-07-26 13:36     ` Markus Armbruster
2011-07-29  8:41       ` Markus Armbruster
2011-07-20 16:23 ` [Qemu-devel] [PATCH 19/55] scsi-disk: Factor out scsi_disk_emulate_start_stop() Markus Armbruster
2011-07-26 12:03   ` Christoph Hellwig
2011-07-20 16:23 ` [Qemu-devel] [PATCH 20/55] scsi-disk: Track tray open/close state Markus Armbruster
2011-07-26 12:03   ` Christoph Hellwig
2011-07-20 16:23 ` [Qemu-devel] [PATCH 21/55] block: Revert entanglement of bdrv_is_inserted() with tray status Markus Armbruster
2011-07-26 12:10   ` Christoph Hellwig
2011-07-20 16:23 ` [Qemu-devel] [PATCH 22/55] block: Drop tray status tracking, no longer used Markus Armbruster
2011-07-26 12:11   ` Christoph Hellwig
2011-07-20 16:23 ` [Qemu-devel] [PATCH 23/55] block: Show whether the guest ejected the medium in info block Markus Armbruster
     [not found]   ` <20110721112232.28405a1c@doriath>
2011-07-21 15:08     ` Markus Armbruster [this message]
2011-07-21 16:38       ` Luiz Capitulino
2011-07-21 17:30         ` Luiz Capitulino
2011-07-20 16:23 ` [Qemu-devel] [PATCH 24/55] ide/atapi: Track tray locked state Markus Armbruster
2011-07-26 12:13   ` Christoph Hellwig
2011-07-20 16:23 ` [Qemu-devel] [PATCH 25/55] ide/atapi: Switch from BlockDriverState's locked to own tray_locked Markus Armbruster
2011-07-26 12:14   ` Christoph Hellwig
2011-07-20 16:24 ` [Qemu-devel] [PATCH 26/55] scsi-disk: Track tray locked state Markus Armbruster
2011-07-26 12:14   ` Christoph Hellwig
2011-07-20 16:24 ` [Qemu-devel] [PATCH 27/55] scsi-disk: Switch from BlockDriverState's locked to own tray_locked Markus Armbruster
2011-07-26 12:14   ` Christoph Hellwig
2011-07-26 13:38     ` Markus Armbruster
2011-07-20 16:24 ` [Qemu-devel] [PATCH 28/55] block: Leave enforcing tray lock to device models Markus Armbruster
     [not found]   ` <20110721113051.4ea99b04@doriath>
2011-07-21 15:16     ` Markus Armbruster
2011-07-21 16:40       ` Luiz Capitulino
2011-07-20 16:24 ` [Qemu-devel] [PATCH 29/55] block: Drop medium lock tracking, ask device models instead Markus Armbruster
2011-07-20 16:24 ` [Qemu-devel] [PATCH 30/55] block: Rename bdrv_set_locked() to bdrv_lock_medium() Markus Armbruster
2011-07-20 16:24 ` [Qemu-devel] [PATCH 31/55] ide: Provide IDEDeviceInfo method exit() Markus Armbruster
2011-07-26 12:16   ` Christoph Hellwig
2011-07-20 16:24 ` [Qemu-devel] [PATCH 32/55] ide/atapi: Don't fail eject when tray is already open Markus Armbruster
2011-07-26 12:16   ` Christoph Hellwig
2011-07-20 16:24 ` [Qemu-devel] [PATCH 33/55] ide/atapi: Avoid physical/virtual tray state mismatch Markus Armbruster
2011-07-26 12:17   ` Christoph Hellwig
2011-07-26 13:43     ` Markus Armbruster
2011-07-20 16:24 ` [Qemu-devel] [PATCH 34/55] scsi-disk: Fix START_STOP to fail when it can't eject Markus Armbruster
2011-07-26 12:17   ` Christoph Hellwig
2011-07-20 16:24 ` [Qemu-devel] [PATCH 35/55] scsi-disk: Avoid physical/virtual tray state mismatch Markus Armbruster
2011-07-26 12:17   ` Christoph Hellwig
2011-07-20 16:24 ` [Qemu-devel] [PATCH 36/55] ide: Give vmstate structs internal linkage where possible Markus Armbruster
2011-07-20 16:24 ` [Qemu-devel] [PATCH 37/55] ide/atapi: Preserve tray state on migration Markus Armbruster
2011-07-20 16:24 ` [Qemu-devel] [PATCH 38/55] scsi-disk: " Markus Armbruster
2011-07-20 16:24 ` [Qemu-devel] [PATCH 39/55] block/raw: Fix to forward method bdrv_media_changed() Markus Armbruster
2011-07-26 12:18   ` Christoph Hellwig
2011-07-20 16:24 ` [Qemu-devel] [PATCH 40/55] block: Leave tracking media change to device models Markus Armbruster
2011-07-26 12:19   ` Christoph Hellwig
2011-07-20 16:24 ` [Qemu-devel] [PATCH 41/55] fdc: Make media change detection more robust Markus Armbruster
2011-07-20 16:24 ` [Qemu-devel] [PATCH 42/55] block: Clean up bdrv_flush_all() Markus Armbruster
2011-07-26 12:19   ` Christoph Hellwig
2011-07-20 16:24 ` [Qemu-devel] [PATCH 43/55] savevm: Include writable devices with removable media Markus Armbruster
2011-07-20 16:24 ` [Qemu-devel] [PATCH 44/55] spitz tosa: Simplify "drive is suitable for microdrive" test Markus Armbruster
2011-07-30  2:24   ` andrzej zaborowski
2011-08-01 12:33     ` Markus Armbruster
2011-08-01 13:04       ` Peter Maydell
2011-08-03  8:12         ` Markus Armbruster
2011-08-03 12:05           ` andrzej zaborowski
2011-08-03 13:28             ` Markus Armbruster
2011-08-03 13:37               ` andrzej zaborowski
2011-08-03 16:38                 ` Markus Armbruster
2011-08-03 17:26                   ` andrzej zaborowski
2011-08-03 18:24                     ` Markus Armbruster
2011-08-03 20:20                       ` andrzej zaborowski
2011-08-04  8:02                         ` Kevin Wolf
2011-08-09  4:32                           ` andrzej zaborowski
2011-08-09  7:32                             ` Kevin Wolf
2011-08-09 11:56                               ` Markus Armbruster
2011-08-09 12:10                                 ` Kevin Wolf
2011-08-09 12:36                                   ` Markus Armbruster
2011-08-09 12:46                                     ` Kevin Wolf
2011-08-04  9:36                         ` Markus Armbruster
2011-07-20 16:24 ` [Qemu-devel] [PATCH 45/55] block: Clean up remaining users of "removable" Markus Armbruster
2011-07-21 17:33   ` Luiz Capitulino
2011-07-26 13:03   ` Christoph Hellwig
2011-07-20 16:24 ` [Qemu-devel] [PATCH 46/55] block: Drop BlockDriverState member removable Markus Armbruster
2011-07-26 13:03   ` Christoph Hellwig
2011-07-20 16:24 ` [Qemu-devel] [PATCH 47/55] block: Move BlockConf & friends from block_int.h to block.h Markus Armbruster
2011-07-26 13:04   ` Christoph Hellwig
2011-07-20 16:24 ` [Qemu-devel] [PATCH 48/55] hw: Trim superfluous #include "block_int.h" Markus Armbruster
2011-07-26 13:04   ` Christoph Hellwig
2011-07-20 16:24 ` [Qemu-devel] [PATCH 49/55] block: Declare qemu_blockalign() in block.h, not block_int.h Markus Armbruster
2011-07-26 13:05   ` Christoph Hellwig
2011-07-26 14:10     ` Markus Armbruster
2011-07-29  8:56     ` Markus Armbruster
2011-07-29 13:11       ` Christoph Hellwig
2011-07-20 16:24 ` [Qemu-devel] [PATCH 50/55] block: New bdrv_set_buffer_alignment() Markus Armbruster
2011-07-26 13:06   ` Christoph Hellwig
2011-07-20 16:24 ` [Qemu-devel] [PATCH 51/55] block: Reset buffer alignment on detach Markus Armbruster
2011-07-26 13:06   ` Christoph Hellwig
2011-07-20 16:24 ` [Qemu-devel] [PATCH 52/55] block: Move BlockDriverAIOCB & friends from block_int.h to block.h Markus Armbruster
2011-07-26 13:07   ` Christoph Hellwig
2011-07-26 14:11     ` Markus Armbruster
2011-07-20 16:24 ` [Qemu-devel] [PATCH 53/55] nbd: Clean up use of block_int.h Markus Armbruster
2011-07-26 13:07   ` Christoph Hellwig
2011-07-20 16:24 ` [Qemu-devel] [PATCH 54/55] block: New change_media_cb() parameter load Markus Armbruster
2011-07-26 13:08   ` Christoph Hellwig
2011-07-20 16:24 ` [Qemu-devel] [PATCH 55/55] ide/atapi scsi-disk: Make monitor eject -f, then change work Markus Armbruster
2011-07-26 13:08   ` Christoph Hellwig
2011-07-23  3:15 ` [Qemu-devel] [PATCH 00/55] Block layer cleanup & fixes Amit Shah
2011-07-25 15:33   ` Markus Armbruster
2011-07-26  5:33     ` Amit Shah
2011-07-28  8:12 ` Kevin Wolf
2011-07-28  9:34 ` Amit Shah

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=m3zkk7d62f.fsf@blackfin.pond.sub.org \
    --to=armbru@redhat.com \
    --cc=amit.shah@redhat.com \
    --cc=dbaryshkov@gmail.com \
    --cc=kwolf@redhat.com \
    --cc=lcapitulino@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=quintela@redhat.com \
    --cc=stefano.stabellini@eu.citrix.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.