All of lore.kernel.org
 help / color / mirror / Atom feed
From: Markus Armbruster <armbru@redhat.com>
To: Fam Zheng <famz@redhat.com>
Cc: kwolf@redhat.com, qemu-devel@nongnu.org, stefanha@redhat.com,
	benoit.canet@nodalink.com
Subject: Re: [Qemu-devel] [PATCH v2 19/23] blockdev: Drop DriveInfo member enable_auto_del
Date: Mon, 15 Sep 2014 10:40:56 +0200	[thread overview]
Message-ID: <87y4tlmg2v.fsf@blackfin.pond.sub.org> (raw)
In-Reply-To: <20140915073051.GD29999@fam-t430.nay.redhat.com> (Fam Zheng's message of "Mon, 15 Sep 2014 15:30:51 +0800")

Fam Zheng <famz@redhat.com> writes:

> On Sat, 09/13 17:00, Markus Armbruster wrote:
>> Commit 2d246f0 introduced DriveInfo member enable_auto_del to
>> distinguish DriveInfo created via drive_new() from DriveInfo created
>> via qmp_blockdev_add().  The latter no longer exist.  Drop
>> enable_auto_del.
>> 
>> Signed-off-by: Markus Armbruster <armbru@redhat.com>
>> ---
>>  blockdev.c                | 11 +++--------
>>  include/sysemu/blockdev.h |  1 -
>>  2 files changed, 3 insertions(+), 9 deletions(-)
>> 
>> diff --git a/blockdev.c b/blockdev.c
>> index 0d99be0..e218c59 100644
>> --- a/blockdev.c
>> +++ b/blockdev.c
>> @@ -90,16 +90,14 @@ void blockdev_mark_auto_del(BlockBackend *blk)
>>      DriveInfo *dinfo = blk_legacy_dinfo(blk);
>>      BlockDriverState *bs = blk_bs(blk);
>>  
>> -    if (dinfo && !dinfo->enable_auto_del) {
>> +    if (!dinfo) {
>>          return;
>>      }
>>  
>>      if (bs->job) {
>>          block_job_cancel(bs->job);
>>      }
>> -    if (dinfo) {
>> -        dinfo->auto_del = 1;
>> -    }
>> +    dinfo->auto_del = 1;
>>  }
>
> Looks good.
>
> Based on the explanation in the commit message of patch 18, previouly,
> dinfo is always non-NULL, so enable_auto_del distinguishes whether the
> device is created by drive_new() or qmp_blockdev_add().

Correct.

> Now dinfo is NULL iff created by qmp_blockdev_add(), so
> enable_auto_del is not necessary any more.

Correct again.

> If I'm reading correctly, the dropped two "if (dinfo.."'s are also redundant.

Yes.  Let me explain why.

The two cases to distinguish are "created by drive_new()" and "created
by qmp_blockdev_add()".

Commit 2d246f0 introduced DriveInfo member enable_auto_del to exactly
that.

The code tests for "created by qmp_blockdev_add()" like this:

    dinfo && !dinfo->enable_auto_del

Before PATCH 18, this was actually unnecessarily careful, because dinfo
could never be null, but that's okay.

PATCH 18 changes the "created by qmp_blockdev_add() case: now dinfo is
null there.  The test remains correct, only now its second rather than
first part is unnecessary: dinfo now implies dinfo->enable_auto_del.

Before PATCH 18         dinfo != NULL	!dinfo->enable_auto_del   &&
by drive_new()          true            false                     false
by qmp_blockdev_add()   true            true                      true

After PATCH 18          dinfo != NULL	!dinfo->enable_auto_del   &&
by drive_new()          true            false                     false
by qmp_blockdev_add()   false           N/A                       false

Oops.

After PATCH 19          dinfo                                     !dinfo
by drive_new()          true                                      false
by qmp_blockdev_add()   false                                     true

Looks like I need to squash PATCH 19 into PATCH 18...  Thanks for making
me think!

[...]

  reply	other threads:[~2014-09-15  8:41 UTC|newest]

Thread overview: 56+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-09-13 15:00 [Qemu-devel] [PATCH v2 00/23] Split BlockBackend off BDS with an axe Markus Armbruster
2014-09-13 15:00 ` [Qemu-devel] [PATCH v2 01/23] block: Split bdrv_new_root() off bdrv_new() Markus Armbruster
2014-09-13 20:45   ` Max Reitz
2014-09-15 12:00   ` Benoît Canet
2014-09-15 13:19     ` Markus Armbruster
2014-09-13 15:00 ` [Qemu-devel] [PATCH v2 02/23] block: New BlockBackend Markus Armbruster
2014-09-13 21:41   ` Max Reitz
2014-09-15  6:37     ` Markus Armbruster
2014-09-15 13:02   ` Benoît Canet
2014-09-15 13:53     ` Markus Armbruster
2014-09-15 14:55       ` Markus Armbruster
2014-09-15 15:54         ` Markus Armbruster
2014-09-13 15:00 ` [Qemu-devel] [PATCH v2 03/23] block: Connect BlockBackend to BlockDriverState Markus Armbruster
2014-09-13 22:13   ` Max Reitz
2014-09-15  6:59     ` Markus Armbruster
2014-09-15 15:00   ` Benoît Canet
2014-09-15 15:34     ` Markus Armbruster
2014-09-13 15:00 ` [Qemu-devel] [PATCH v2 04/23] block: Connect BlockBackend and DriveInfo Markus Armbruster
2014-09-16 12:38   ` Benoît Canet
2014-09-16 13:51     ` Markus Armbruster
2014-09-13 15:00 ` [Qemu-devel] [PATCH v2 05/23] block: Code motion to get rid of stubs/blockdev.c Markus Armbruster
2014-09-15  6:28   ` Fam Zheng
2014-09-15  7:21     ` Markus Armbruster
2014-09-15  7:23       ` Fam Zheng
2014-09-16 12:40   ` Benoît Canet
2014-09-13 15:00 ` [Qemu-devel] [PATCH v2 06/23] block: Make BlockBackend own its BlockDriverState Markus Armbruster
2014-09-16 12:56   ` Benoît Canet
2014-09-16 14:01     ` Markus Armbruster
2014-09-13 15:00 ` [Qemu-devel] [PATCH v2 07/23] block: Eliminate bdrv_iterate(), use bdrv_next() Markus Armbruster
2014-09-16 13:04   ` Benoît Canet
2014-09-13 15:00 ` [Qemu-devel] [PATCH v2 08/23] block: Eliminate BlockDriverState member device_name[] Markus Armbruster
2014-09-16 13:18   ` Benoît Canet
2014-09-16 14:08     ` Markus Armbruster
2014-09-16 14:32       ` Paolo Bonzini
2014-09-16 17:39         ` Markus Armbruster
2014-09-13 15:00 ` [Qemu-devel] [PATCH v2 09/23] block: Merge BlockBackend and BlockDriverState name spaces Markus Armbruster
2014-09-16 13:25   ` Benoît Canet
2014-09-13 15:00 ` [Qemu-devel] [PATCH v2 10/23] block: Eliminate DriveInfo member bdrv, use blk_by_legacy_dinfo() Markus Armbruster
2014-09-15  6:58   ` Fam Zheng
2014-09-15  7:21     ` Markus Armbruster
2014-09-13 15:00 ` [Qemu-devel] [PATCH v2 11/23] block: Rename BlockDriverAIOCB* to BlockAIOCB* Markus Armbruster
2014-09-13 15:00 ` [Qemu-devel] [PATCH v2 12/23] virtio-blk: Drop redundant VirtIOBlock member conf Markus Armbruster
2014-09-13 15:00 ` [Qemu-devel] [PATCH v2 13/23] virtio-blk: Rename VirtIOBlkConf variables to conf Markus Armbruster
2014-09-13 15:00 ` [Qemu-devel] [PATCH v2 14/23] hw: Convert from BlockDriverState to BlockBackend, mostly Markus Armbruster
2014-09-13 15:00 ` [Qemu-devel] [PATCH v2 15/23] ide: Complete conversion from BlockDriverState to BlockBackend Markus Armbruster
2014-09-13 15:00 ` [Qemu-devel] [PATCH v2 16/23] pc87312: Drop unused members of PC87312State Markus Armbruster
2014-09-13 15:00 ` [Qemu-devel] [PATCH v2 17/23] blockdev: Drop superfluous DriveInfo member id Markus Armbruster
2014-09-13 15:00 ` [Qemu-devel] [PATCH v2 18/23] blockdev: Fix blockdev-add not to create IDE drive (0, 0) Markus Armbruster
2014-09-13 15:00 ` [Qemu-devel] [PATCH v2 19/23] blockdev: Drop DriveInfo member enable_auto_del Markus Armbruster
2014-09-15  7:30   ` Fam Zheng
2014-09-15  8:40     ` Markus Armbruster [this message]
2014-09-13 15:00 ` [Qemu-devel] [PATCH v2 20/23] block/qapi: Convert qmp_query_block() to BlockBackend Markus Armbruster
2014-09-13 15:00 ` [Qemu-devel] [PATCH v2 21/23] blockdev: Convert qmp_eject(), qmp_change_blockdev() " Markus Armbruster
2014-09-13 15:00 ` [Qemu-devel] [PATCH v2 22/23] block: Lift device model API into BlockBackend Markus Armbruster
2014-09-13 15:00 ` [Qemu-devel] [PATCH v2 23/23] block: Make device model's references to BlockBackend strong Markus Armbruster
2014-09-16 12:22 ` [Qemu-devel] [PATCH v2 00/23] Split BlockBackend off BDS with an axe Markus Armbruster

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=87y4tlmg2v.fsf@blackfin.pond.sub.org \
    --to=armbru@redhat.com \
    --cc=benoit.canet@nodalink.com \
    --cc=famz@redhat.com \
    --cc=kwolf@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=stefanha@redhat.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.