[{"id":1760087,"web_url":"http://patchwork.ozlabs.org/comment/1760087/","msgid":"<87mv6h5l87.fsf@secure.mitica>","list_archive_url":null,"date":"2017-08-30T11:49:28","subject":"Re: [Qemu-devel] [PATCH] block: Cleanup BMDS in bdrv_close_all","submitter":{"id":2643,"url":"http://patchwork.ozlabs.org/api/people/2643/","name":"Juan Quintela","email":"quintela@redhat.com"},"content":"Fam Zheng <famz@redhat.com> wrote:\n> This fixes the assertion due to op blockers added by BMDS:\n>\n> block.c:3248: bdrv_delete: Assertion `bdrv_op_blocker_is_empty(bs)' failed.\n>\n> Reproducer: simply start block migration and quit QEMU before it ends.\n>\n> Cc: qemu-stable@nongnu.org\n> Signed-off-by: Fam Zheng <famz@redhat.com>\n\nNo need for one stub, see later.\n\n\n> ---\n>  block.c                 | 2 ++\n>  migration/block.c       | 2 +-\n>  migration/block.h       | 1 +\n>  stubs/Makefile.objs     | 1 +\n>  stubs/block-migration.c | 6 ++++++\n>  5 files changed, 11 insertions(+), 1 deletion(-)\n>  create mode 100644 stubs/block-migration.c\n>\n> diff --git a/block.c b/block.c\n> index 3308814bba..508a57274d 100644\n> --- a/block.c\n> +++ b/block.c\n> @@ -43,6 +43,7 @@\n>  #include \"qemu/cutils.h\"\n>  #include \"qemu/id.h\"\n>  #include \"qapi/util.h\"\n> +#include \"migration/block.h\"\n\nthis should be misc.h\n\n>  \n>  #ifdef CONFIG_BSD\n>  #include <sys/ioctl.h>\n> @@ -3111,6 +3112,7 @@ static void bdrv_close(BlockDriverState *bs)\n>  \n>  void bdrv_close_all(void)\n>  {\n> +    block_migration_cleanup_bmds();\n>      block_job_cancel_sync_all();\n>      nbd_export_close_all();\n>  \n\n> diff --git a/migration/block.h b/migration/block.h\n> index 22ebe94259..8bae1cf55a 100644\n> --- a/migration/block.h\n> +++ b/migration/block.h\n> @@ -42,4 +42,5 @@ static inline uint64_t blk_mig_bytes_total(void)\n>  #endif /* CONFIG_LIVE_BLOCK_MIGRATION */\n>  \n>  void migrate_set_block_enabled(bool value, Error **errp);\n> +void block_migration_cleanup_bmds(void);\n>  #endif /* MIGRATION_BLOCK_H */\n> diff --git a/stubs/Makefile.objs b/stubs/Makefile.objs\n> index e69c217aff..7540913767 100644\n> --- a/stubs/Makefile.objs\n> +++ b/stubs/Makefile.objs\n> @@ -19,6 +19,7 @@ stub-obj-y += is-daemonized.o\n>  stub-obj-$(CONFIG_LINUX_AIO) += linux-aio.o\n>  stub-obj-y += machine-init-done.o\n>  stub-obj-y += migr-blocker.o\n> +stub-obj-y += block-migration.o\n>  stub-obj-y += change-state-handler.o\n>  stub-obj-y += monitor.o\n>  stub-obj-y += notify-event.o\n> diff --git a/stubs/block-migration.c b/stubs/block-migration.c\n> new file mode 100644\n> index 0000000000..855f15c757\n> --- /dev/null\n> +++ b/stubs/block-migration.c\n> @@ -0,0 +1,6 @@\n> +#include \"qemu/osdep.h\"\n> +#include \"migration/block.h\"\n> +\n> +void block_migration_cleanup_bmds(void)\n> +{\n> +}\n\nYou can add this inside include/migration/misc.h\n\n#ifdef CONFIG_LIVE_BLOCK_MIGRATION\nvoid blk_mig_init(void);\n#else\nstatic inline void blk_mig_init(void) {}\n\n// And then you add the stub here?\n\n#endif\n\n\nOnce here, I would consider to give one error/warning if we quit qemu\nand we are in the middle of a block migration, no?\n\nThanks, Juan.","headers":{"Return-Path":"<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>","X-Original-To":"incoming@patchwork.ozlabs.org","Delivered-To":"patchwork-incoming@bilbo.ozlabs.org","Authentication-Results":["ozlabs.org;\n\tspf=pass (mailfrom) smtp.mailfrom=nongnu.org\n\t(client-ip=2001:4830:134:3::11; helo=lists.gnu.org;\n\tenvelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org;\n\treceiver=<UNKNOWN>)","ext-mx04.extmail.prod.ext.phx2.redhat.com;\n\tdmarc=none (p=none dis=none) header.from=redhat.com","ext-mx04.extmail.prod.ext.phx2.redhat.com;\n\tspf=fail smtp.mailfrom=quintela@redhat.com"],"Received":["from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11])\n\t(using TLSv1 with cipher AES256-SHA (256/256 bits))\n\t(No client certificate requested)\n\tby ozlabs.org (Postfix) with ESMTPS id 3xj3jF1rfmz9sQl\n\tfor <incoming@patchwork.ozlabs.org>;\n\tWed, 30 Aug 2017 21:50:20 +1000 (AEST)","from localhost ([::1]:49840 helo=lists.gnu.org)\n\tby lists.gnu.org with esmtp (Exim 4.71) (envelope-from\n\t<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>)\n\tid 1dn1Ve-00048L-8j\n\tfor incoming@patchwork.ozlabs.org; Wed, 30 Aug 2017 07:50:14 -0400","from eggs.gnu.org ([2001:4830:134:3::10]:56018)\n\tby lists.gnu.org with esmtp (Exim 4.71)\n\t(envelope-from <quintela@redhat.com>) id 1dn1VA-000470-Ot\n\tfor qemu-devel@nongnu.org; Wed, 30 Aug 2017 07:49:46 -0400","from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)\n\t(envelope-from <quintela@redhat.com>) id 1dn1V9-0005rz-O1\n\tfor qemu-devel@nongnu.org; Wed, 30 Aug 2017 07:49:44 -0400","from mx1.redhat.com ([209.132.183.28]:33598)\n\tby eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32)\n\t(Exim 4.71) (envelope-from <quintela@redhat.com>)\n\tid 1dn1V5-0005pl-4M; Wed, 30 Aug 2017 07:49:39 -0400","from smtp.corp.redhat.com\n\t(int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11])\n\t(using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits))\n\t(No client certificate requested)\n\tby mx1.redhat.com (Postfix) with ESMTPS id 293B88008B;\n\tWed, 30 Aug 2017 11:49:37 +0000 (UTC)","from localhost (ovpn-117-188.ams2.redhat.com [10.36.117.188])\n\tby smtp.corp.redhat.com (Postfix) with ESMTP id 14BCD8F342;\n\tWed, 30 Aug 2017 11:49:29 +0000 (UTC)"],"DMARC-Filter":"OpenDMARC Filter v1.3.2 mx1.redhat.com 293B88008B","From":"Juan Quintela <quintela@redhat.com>","To":"Fam Zheng <famz@redhat.com>","In-Reply-To":"<20170830100605.22694-1-famz@redhat.com> (Fam Zheng's message of\n\t\"Wed, 30 Aug 2017 18:06:05 +0800\")","References":"<20170830100605.22694-1-famz@redhat.com>","User-Agent":"Gnus/5.13 (Gnus v5.13) Emacs/25.2 (gnu/linux)","Date":"Wed, 30 Aug 2017 13:49:28 +0200","Message-ID":"<87mv6h5l87.fsf@secure.mitica>","MIME-Version":"1.0","Content-Type":"text/plain","X-Scanned-By":"MIMEDefang 2.79 on 10.5.11.11","X-Greylist":"Sender IP whitelisted, not delayed by milter-greylist-4.5.16\n\t(mx1.redhat.com [10.5.110.28]);\n\tWed, 30 Aug 2017 11:49:37 +0000 (UTC)","X-detected-operating-system":"by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic]\n\t[fuzzy]","X-Received-From":"209.132.183.28","Subject":"Re: [Qemu-devel] [PATCH] block: Cleanup BMDS in bdrv_close_all","X-BeenThere":"qemu-devel@nongnu.org","X-Mailman-Version":"2.1.21","Precedence":"list","List-Id":"<qemu-devel.nongnu.org>","List-Unsubscribe":"<https://lists.nongnu.org/mailman/options/qemu-devel>,\n\t<mailto:qemu-devel-request@nongnu.org?subject=unsubscribe>","List-Archive":"<http://lists.nongnu.org/archive/html/qemu-devel/>","List-Post":"<mailto:qemu-devel@nongnu.org>","List-Help":"<mailto:qemu-devel-request@nongnu.org?subject=help>","List-Subscribe":"<https://lists.nongnu.org/mailman/listinfo/qemu-devel>,\n\t<mailto:qemu-devel-request@nongnu.org?subject=subscribe>","Reply-To":"quintela@redhat.com","Cc":"Kevin Wolf <kwolf@redhat.com>, qemu-block@nongnu.org,\n\tqemu-stable@nongnu.org, qemu-devel@nongnu.org, peterx@redhat.com,\n\tMax Reitz <mreitz@redhat.com>,\n\t\"Dr. David Alan Gilbert\" <dgilbert@redhat.com>","Errors-To":"qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org","Sender":"\"Qemu-devel\"\n\t<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>"}},{"id":1760144,"web_url":"http://patchwork.ozlabs.org/comment/1760144/","msgid":"<20170830131847.GP4208@lemon.lan>","list_archive_url":null,"date":"2017-08-30T13:18:47","subject":"Re: [Qemu-devel] [PATCH] block: Cleanup BMDS in bdrv_close_all","submitter":{"id":24872,"url":"http://patchwork.ozlabs.org/api/people/24872/","name":"Fam Zheng","email":"famz@redhat.com"},"content":"On Wed, 08/30 13:49, Juan Quintela wrote:\n> Fam Zheng <famz@redhat.com> wrote:\n> > This fixes the assertion due to op blockers added by BMDS:\n> >\n> > block.c:3248: bdrv_delete: Assertion `bdrv_op_blocker_is_empty(bs)' failed.\n> >\n> > Reproducer: simply start block migration and quit QEMU before it ends.\n> >\n> > Cc: qemu-stable@nongnu.org\n> > Signed-off-by: Fam Zheng <famz@redhat.com>\n> \n> No need for one stub, see later.\n> \n> \n> > ---\n> >  block.c                 | 2 ++\n> >  migration/block.c       | 2 +-\n> >  migration/block.h       | 1 +\n> >  stubs/Makefile.objs     | 1 +\n> >  stubs/block-migration.c | 6 ++++++\n> >  5 files changed, 11 insertions(+), 1 deletion(-)\n> >  create mode 100644 stubs/block-migration.c\n> >\n> > diff --git a/block.c b/block.c\n> > index 3308814bba..508a57274d 100644\n> > --- a/block.c\n> > +++ b/block.c\n> > @@ -43,6 +43,7 @@\n> >  #include \"qemu/cutils.h\"\n> >  #include \"qemu/id.h\"\n> >  #include \"qapi/util.h\"\n> > +#include \"migration/block.h\"\n> \n> this should be misc.h\n> \n> >  \n> >  #ifdef CONFIG_BSD\n> >  #include <sys/ioctl.h>\n> > @@ -3111,6 +3112,7 @@ static void bdrv_close(BlockDriverState *bs)\n> >  \n> >  void bdrv_close_all(void)\n> >  {\n> > +    block_migration_cleanup_bmds();\n> >      block_job_cancel_sync_all();\n> >      nbd_export_close_all();\n> >  \n> \n> > diff --git a/migration/block.h b/migration/block.h\n> > index 22ebe94259..8bae1cf55a 100644\n> > --- a/migration/block.h\n> > +++ b/migration/block.h\n> > @@ -42,4 +42,5 @@ static inline uint64_t blk_mig_bytes_total(void)\n> >  #endif /* CONFIG_LIVE_BLOCK_MIGRATION */\n> >  \n> >  void migrate_set_block_enabled(bool value, Error **errp);\n> > +void block_migration_cleanup_bmds(void);\n> >  #endif /* MIGRATION_BLOCK_H */\n> > diff --git a/stubs/Makefile.objs b/stubs/Makefile.objs\n> > index e69c217aff..7540913767 100644\n> > --- a/stubs/Makefile.objs\n> > +++ b/stubs/Makefile.objs\n> > @@ -19,6 +19,7 @@ stub-obj-y += is-daemonized.o\n> >  stub-obj-$(CONFIG_LINUX_AIO) += linux-aio.o\n> >  stub-obj-y += machine-init-done.o\n> >  stub-obj-y += migr-blocker.o\n> > +stub-obj-y += block-migration.o\n> >  stub-obj-y += change-state-handler.o\n> >  stub-obj-y += monitor.o\n> >  stub-obj-y += notify-event.o\n> > diff --git a/stubs/block-migration.c b/stubs/block-migration.c\n> > new file mode 100644\n> > index 0000000000..855f15c757\n> > --- /dev/null\n> > +++ b/stubs/block-migration.c\n> > @@ -0,0 +1,6 @@\n> > +#include \"qemu/osdep.h\"\n> > +#include \"migration/block.h\"\n> > +\n> > +void block_migration_cleanup_bmds(void)\n> > +{\n> > +}\n> \n> You can add this inside include/migration/misc.h\n> \n> #ifdef CONFIG_LIVE_BLOCK_MIGRATION\n> void blk_mig_init(void);\n> #else\n> static inline void blk_mig_init(void) {}\n> \n> // And then you add the stub here?\n\nThis doesn't work.  The function is not stubbed for !CONFIG_LIVE_BLOCK_MIGRATION\nconfigs, but for tools that don't link to common-obj-y. For example with your\nproposed change, I get:\n\n  LINK    qemu-nbd\nblock.o: In function `bdrv_close_all':\n/home/fam/work/qemu/block.c:3115: undefined reference to `block_migration_cleanup_bmds'\ncollect2: error: ld returned 1 exit status\nmake: *** [/home/fam/work/qemu/rules.mak:121: qemu-nbd] Error 1\nmake: Leaving directory '/home/fam/work/q/build'\n\n> \n> #endif\n> \n> \n> Once here, I would consider to give one error/warning if we quit qemu\n> and we are in the middle of a block migration, no?\n\nWe already have various types of block jobs, such as mirror and backup, and even\nnon-block tasks like migration and dump that runs in the background. None gives\nerror/warning.  Keeping quiet here is consistent with other code.\n\nFam","headers":{"Return-Path":"<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>","X-Original-To":"incoming@patchwork.ozlabs.org","Delivered-To":"patchwork-incoming@bilbo.ozlabs.org","Authentication-Results":["ozlabs.org;\n\tspf=pass (mailfrom) smtp.mailfrom=nongnu.org\n\t(client-ip=2001:4830:134:3::11; helo=lists.gnu.org;\n\tenvelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org;\n\treceiver=<UNKNOWN>)","ext-mx08.extmail.prod.ext.phx2.redhat.com;\n\tdmarc=none (p=none dis=none) header.from=redhat.com","ext-mx08.extmail.prod.ext.phx2.redhat.com;\n\tspf=fail smtp.mailfrom=famz@redhat.com"],"Received":["from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11])\n\t(using TLSv1 with cipher AES256-SHA (256/256 bits))\n\t(No client certificate requested)\n\tby ozlabs.org (Postfix) with ESMTPS id 3xj5hr69snz9s8w\n\tfor <incoming@patchwork.ozlabs.org>;\n\tWed, 30 Aug 2017 23:20:11 +1000 (AEST)","from localhost ([::1]:50540 helo=lists.gnu.org)\n\tby lists.gnu.org with esmtp (Exim 4.71) (envelope-from\n\t<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>)\n\tid 1dn2ue-0006zc-Ma\n\tfor incoming@patchwork.ozlabs.org; Wed, 30 Aug 2017 09:20:08 -0400","from eggs.gnu.org ([2001:4830:134:3::10]:49252)\n\tby lists.gnu.org with esmtp (Exim 4.71)\n\t(envelope-from <famz@redhat.com>) id 1dn2tg-0006e4-Nj\n\tfor qemu-devel@nongnu.org; Wed, 30 Aug 2017 09:19:10 -0400","from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)\n\t(envelope-from <famz@redhat.com>) id 1dn2ta-00015u-Ha\n\tfor qemu-devel@nongnu.org; Wed, 30 Aug 2017 09:19:08 -0400","from mx1.redhat.com ([209.132.183.28]:47370)\n\tby eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32)\n\t(Exim 4.71) (envelope-from <famz@redhat.com>)\n\tid 1dn2tQ-000132-J6; Wed, 30 Aug 2017 09:18:52 -0400","from smtp.corp.redhat.com\n\t(int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13])\n\t(using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits))\n\t(No client certificate requested)\n\tby mx1.redhat.com (Postfix) with ESMTPS id 98C99C0587DD;\n\tWed, 30 Aug 2017 13:18:51 +0000 (UTC)","from localhost (ovpn-12-48.pek2.redhat.com [10.72.12.48])\n\tby smtp.corp.redhat.com (Postfix) with ESMTP id 6EBAA708FA;\n\tWed, 30 Aug 2017 13:18:48 +0000 (UTC)"],"DMARC-Filter":"OpenDMARC Filter v1.3.2 mx1.redhat.com 98C99C0587DD","Date":"Wed, 30 Aug 2017 21:18:47 +0800","From":"Fam Zheng <famz@redhat.com>","To":"Juan Quintela <quintela@redhat.com>","Message-ID":"<20170830131847.GP4208@lemon.lan>","References":"<20170830100605.22694-1-famz@redhat.com>\n\t<87mv6h5l87.fsf@secure.mitica>","MIME-Version":"1.0","Content-Type":"text/plain; charset=us-ascii","Content-Disposition":"inline","In-Reply-To":"<87mv6h5l87.fsf@secure.mitica>","User-Agent":"Mutt/1.8.3 (2017-05-23)","X-Scanned-By":"MIMEDefang 2.79 on 10.5.11.13","X-Greylist":"Sender IP whitelisted, not delayed by milter-greylist-4.5.16\n\t(mx1.redhat.com [10.5.110.32]);\n\tWed, 30 Aug 2017 13:18:51 +0000 (UTC)","X-detected-operating-system":"by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic]\n\t[fuzzy]","X-Received-From":"209.132.183.28","Subject":"Re: [Qemu-devel] [PATCH] block: Cleanup BMDS in bdrv_close_all","X-BeenThere":"qemu-devel@nongnu.org","X-Mailman-Version":"2.1.21","Precedence":"list","List-Id":"<qemu-devel.nongnu.org>","List-Unsubscribe":"<https://lists.nongnu.org/mailman/options/qemu-devel>,\n\t<mailto:qemu-devel-request@nongnu.org?subject=unsubscribe>","List-Archive":"<http://lists.nongnu.org/archive/html/qemu-devel/>","List-Post":"<mailto:qemu-devel@nongnu.org>","List-Help":"<mailto:qemu-devel-request@nongnu.org?subject=help>","List-Subscribe":"<https://lists.nongnu.org/mailman/listinfo/qemu-devel>,\n\t<mailto:qemu-devel-request@nongnu.org?subject=subscribe>","Cc":"Kevin Wolf <kwolf@redhat.com>, qemu-block@nongnu.org,\n\tqemu-devel@nongnu.org, qemu-stable@nongnu.org, peterx@redhat.com,\n\tMax Reitz <mreitz@redhat.com>, \n\t\"Dr. David Alan Gilbert\" <dgilbert@redhat.com>","Errors-To":"qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org","Sender":"\"Qemu-devel\"\n\t<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>"}},{"id":1760185,"web_url":"http://patchwork.ozlabs.org/comment/1760185/","msgid":"<87efrt5ezs.fsf@secure.mitica>","list_archive_url":null,"date":"2017-08-30T14:04:07","subject":"Re: [Qemu-devel] [PATCH] block: Cleanup BMDS in bdrv_close_all","submitter":{"id":2643,"url":"http://patchwork.ozlabs.org/api/people/2643/","name":"Juan Quintela","email":"quintela@redhat.com"},"content":"Fam Zheng <famz@redhat.com> wrote:\n> On Wed, 08/30 13:49, Juan Quintela wrote:\n>> Fam Zheng <famz@redhat.com> wrote:\n>> > This fixes the assertion due to op blockers added by BMDS:\n>> >\n>> > block.c:3248: bdrv_delete: Assertion `bdrv_op_blocker_is_empty(bs)' failed.\n>> >\n>> > Reproducer: simply start block migration and quit QEMU before it ends.\n>> >\n>> > Cc: qemu-stable@nongnu.org\n>> > Signed-off-by: Fam Zheng <famz@redhat.com>\n>> \n>> No need for one stub, see later.\n>> \n>> \n>> > ---\n>> >  block.c                 | 2 ++\n>> >  migration/block.c       | 2 +-\n>> >  migration/block.h       | 1 +\n>> >  stubs/Makefile.objs     | 1 +\n>> >  stubs/block-migration.c | 6 ++++++\n>> >  5 files changed, 11 insertions(+), 1 deletion(-)\n>> >  create mode 100644 stubs/block-migration.c\n>> >\n>> > diff --git a/block.c b/block.c\n>> > index 3308814bba..508a57274d 100644\n>> > --- a/block.c\n>> > +++ b/block.c\n>> > @@ -43,6 +43,7 @@\n>> >  #include \"qemu/cutils.h\"\n>> >  #include \"qemu/id.h\"\n>> >  #include \"qapi/util.h\"\n>> > +#include \"migration/block.h\"\n>> \n>> this should be misc.h\n>> \n>> >  \n>> >  #ifdef CONFIG_BSD\n>> >  #include <sys/ioctl.h>\n>> > @@ -3111,6 +3112,7 @@ static void bdrv_close(BlockDriverState *bs)\n>> >  \n>> >  void bdrv_close_all(void)\n>> >  {\n>> > +    block_migration_cleanup_bmds();\n>> >      block_job_cancel_sync_all();\n>> >      nbd_export_close_all();\n>> >  \n>> \n>> > diff --git a/migration/block.h b/migration/block.h\n>> > index 22ebe94259..8bae1cf55a 100644\n>> > --- a/migration/block.h\n>> > +++ b/migration/block.h\n>> > @@ -42,4 +42,5 @@ static inline uint64_t blk_mig_bytes_total(void)\n>> >  #endif /* CONFIG_LIVE_BLOCK_MIGRATION */\n>> >  \n>> >  void migrate_set_block_enabled(bool value, Error **errp);\n>> > +void block_migration_cleanup_bmds(void);\n>> >  #endif /* MIGRATION_BLOCK_H */\n>> > diff --git a/stubs/Makefile.objs b/stubs/Makefile.objs\n>> > index e69c217aff..7540913767 100644\n>> > --- a/stubs/Makefile.objs\n>> > +++ b/stubs/Makefile.objs\n>> > @@ -19,6 +19,7 @@ stub-obj-y += is-daemonized.o\n>> >  stub-obj-$(CONFIG_LINUX_AIO) += linux-aio.o\n>> >  stub-obj-y += machine-init-done.o\n>> >  stub-obj-y += migr-blocker.o\n>> > +stub-obj-y += block-migration.o\n>> >  stub-obj-y += change-state-handler.o\n>> >  stub-obj-y += monitor.o\n>> >  stub-obj-y += notify-event.o\n>> > diff --git a/stubs/block-migration.c b/stubs/block-migration.c\n>> > new file mode 100644\n>> > index 0000000000..855f15c757\n>> > --- /dev/null\n>> > +++ b/stubs/block-migration.c\n>> > @@ -0,0 +1,6 @@\n>> > +#include \"qemu/osdep.h\"\n>> > +#include \"migration/block.h\"\n>> > +\n>> > +void block_migration_cleanup_bmds(void)\n>> > +{\n>> > +}\n>> \n>> You can add this inside include/migration/misc.h\n>> \n>> #ifdef CONFIG_LIVE_BLOCK_MIGRATION\n>> void blk_mig_init(void);\n>> #else\n>> static inline void blk_mig_init(void) {}\n>> \n>> // And then you add the stub here?\n>\n> This doesn't work.  The function is not stubbed for !CONFIG_LIVE_BLOCK_MIGRATION\n> configs, but for tools that don't link to common-obj-y. For example with your\n> proposed change, I get:\n>\n>   LINK    qemu-nbd\n> block.o: In function `bdrv_close_all':\n> /home/fam/work/qemu/block.c:3115: undefined reference to\n> `block_migration_cleanup_bmds'\n> collect2: error: ld returned 1 exit status\n> make: *** [/home/fam/work/qemu/rules.mak:121: qemu-nbd] Error 1\n> make: Leaving directory '/home/fam/work/q/build'\n\n\nThis works for me, for both CONFIG_LIVE_BLOCK_MIGRATION enabled and not.\nFor qemu-system-x86_64 and qemu-nbd.  Could you test?\n\ngcommit 2888b96dfe5ea9c7901990f54e14b1a7ed3e46b9\nAuthor: Fam Zheng <famz@redhat.com>\nDate:   Wed Aug 30 18:06:05 2017 +0800\n\n    block: Cleanup BMDS in bdrv_close_all\n    \n    This fixes the assertion due to op blockers added by BMDS:\n    \n    block.c:3248: bdrv_delete: Assertion `bdrv_op_blocker_is_empty(bs)' failed.\n    \n    Reproducer: simply start block migration and quit QEMU before it ends.\n    \n    Cc: qemu-stable@nongnu.org\n    Signed-off-by: Fam Zheng <famz@redhat.com>\n    \n    --\n    \n    Don't use stub\n\ndiff --git a/block.c b/block.c\nindex 3615a6809e..4268f892da 100644\n--- a/block.c\n+++ b/block.c\n@@ -43,6 +43,7 @@\n #include \"qemu/cutils.h\"\n #include \"qemu/id.h\"\n #include \"qapi/util.h\"\n+#include \"migration/misc.h\"\n \n #ifdef CONFIG_BSD\n #include <sys/ioctl.h>\n@@ -3111,6 +3112,7 @@ static void bdrv_close(BlockDriverState *bs)\n \n void bdrv_close_all(void)\n {\n+    block_migration_cleanup_bmds();\n     block_job_cancel_sync_all();\n     nbd_export_close_all();\n \ndiff --git a/include/migration/misc.h b/include/migration/misc.h\nindex c079b7771b..6ecb7068d9 100644\n--- a/include/migration/misc.h\n+++ b/include/migration/misc.h\n@@ -24,8 +24,10 @@ void ram_mig_init(void);\n \n #ifdef CONFIG_LIVE_BLOCK_MIGRATION\n void blk_mig_init(void);\n+void block_migration_cleanup_bmds(void);\n #else\n static inline void blk_mig_init(void) {}\n+static inline void block_migration_cleanup_bmds(void) {}\n #endif\n \n #define SELF_ANNOUNCE_ROUNDS 5\ndiff --git a/migration/block.c b/migration/block.c\nindex 9171f60028..c059e48484 100644\n--- a/migration/block.c\n+++ b/migration/block.c\n@@ -673,7 +673,7 @@ static int64_t get_remaining_dirty(void)\n \n \n /* Called with iothread lock taken.  */\n-static void block_migration_cleanup_bmds(void)\n+void block_migration_cleanup_bmds(void)\n {\n     BlkMigDevState *bmds;\n     AioContext *ctx;","headers":{"Return-Path":"<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>","X-Original-To":"incoming@patchwork.ozlabs.org","Delivered-To":"patchwork-incoming@bilbo.ozlabs.org","Authentication-Results":["ozlabs.org;\n\tspf=pass (mailfrom) smtp.mailfrom=nongnu.org\n\t(client-ip=2001:4830:134:3::11; helo=lists.gnu.org;\n\tenvelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org;\n\treceiver=<UNKNOWN>)","ext-mx01.extmail.prod.ext.phx2.redhat.com;\n\tdmarc=none (p=none dis=none) header.from=redhat.com","ext-mx01.extmail.prod.ext.phx2.redhat.com;\n\tspf=fail smtp.mailfrom=quintela@redhat.com"],"Received":["from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11])\n\t(using TLSv1 with cipher AES256-SHA (256/256 bits))\n\t(No client certificate requested)\n\tby ozlabs.org (Postfix) with ESMTPS id 3xj6hn5Jmgz9s8J\n\tfor <incoming@patchwork.ozlabs.org>;\n\tThu, 31 Aug 2017 00:05:10 +1000 (AEST)","from localhost ([::1]:50788 helo=lists.gnu.org)\n\tby lists.gnu.org with esmtp (Exim 4.71) (envelope-from\n\t<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>)\n\tid 1dn3cB-0004Iv-3K\n\tfor incoming@patchwork.ozlabs.org; Wed, 30 Aug 2017 10:05:07 -0400","from eggs.gnu.org ([2001:4830:134:3::10]:36566)\n\tby lists.gnu.org with esmtp (Exim 4.71)\n\t(envelope-from <quintela@redhat.com>) id 1dn3bc-0004Hy-IB\n\tfor qemu-devel@nongnu.org; Wed, 30 Aug 2017 10:04:39 -0400","from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)\n\t(envelope-from <quintela@redhat.com>) id 1dn3bY-0000Vh-8s\n\tfor qemu-devel@nongnu.org; Wed, 30 Aug 2017 10:04:32 -0400","from mx1.redhat.com ([209.132.183.28]:41864)\n\tby eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32)\n\t(Exim 4.71) (envelope-from <quintela@redhat.com>)\n\tid 1dn3bN-0000TN-JH; Wed, 30 Aug 2017 10:04:17 -0400","from smtp.corp.redhat.com\n\t(int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.15])\n\t(using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits))\n\t(No client certificate requested)\n\tby mx1.redhat.com (Postfix) with ESMTPS id 5148381DFE;\n\tWed, 30 Aug 2017 14:04:16 +0000 (UTC)","from localhost (ovpn-117-188.ams2.redhat.com [10.36.117.188])\n\tby smtp.corp.redhat.com (Postfix) with ESMTP id AF2BA87F9F;\n\tWed, 30 Aug 2017 14:04:08 +0000 (UTC)"],"DMARC-Filter":"OpenDMARC Filter v1.3.2 mx1.redhat.com 5148381DFE","From":"Juan Quintela <quintela@redhat.com>","To":"Fam Zheng <famz@redhat.com>","In-Reply-To":"<20170830131847.GP4208@lemon.lan> (Fam Zheng's message of \"Wed, \n\t30 Aug 2017 21:18:47 +0800\")","References":"<20170830100605.22694-1-famz@redhat.com>\n\t<87mv6h5l87.fsf@secure.mitica> <20170830131847.GP4208@lemon.lan>","User-Agent":"Gnus/5.13 (Gnus v5.13) Emacs/25.2 (gnu/linux)","Date":"Wed, 30 Aug 2017 16:04:07 +0200","Message-ID":"<87efrt5ezs.fsf@secure.mitica>","MIME-Version":"1.0","Content-Type":"text/plain","X-Scanned-By":"MIMEDefang 2.79 on 10.5.11.15","X-Greylist":"Sender IP whitelisted, not delayed by milter-greylist-4.5.16\n\t(mx1.redhat.com [10.5.110.25]);\n\tWed, 30 Aug 2017 14:04:16 +0000 (UTC)","X-detected-operating-system":"by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic]\n\t[fuzzy]","X-Received-From":"209.132.183.28","Subject":"Re: [Qemu-devel] [PATCH] block: Cleanup BMDS in bdrv_close_all","X-BeenThere":"qemu-devel@nongnu.org","X-Mailman-Version":"2.1.21","Precedence":"list","List-Id":"<qemu-devel.nongnu.org>","List-Unsubscribe":"<https://lists.nongnu.org/mailman/options/qemu-devel>,\n\t<mailto:qemu-devel-request@nongnu.org?subject=unsubscribe>","List-Archive":"<http://lists.nongnu.org/archive/html/qemu-devel/>","List-Post":"<mailto:qemu-devel@nongnu.org>","List-Help":"<mailto:qemu-devel-request@nongnu.org?subject=help>","List-Subscribe":"<https://lists.nongnu.org/mailman/listinfo/qemu-devel>,\n\t<mailto:qemu-devel-request@nongnu.org?subject=subscribe>","Reply-To":"quintela@redhat.com","Cc":"Kevin Wolf <kwolf@redhat.com>, qemu-block@nongnu.org,\n\tqemu-devel@nongnu.org, qemu-stable@nongnu.org, peterx@redhat.com,\n\tMax Reitz <mreitz@redhat.com>, \n\t\"Dr. David Alan Gilbert\" <dgilbert@redhat.com>","Errors-To":"qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org","Sender":"\"Qemu-devel\"\n\t<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>"}},{"id":1760594,"web_url":"http://patchwork.ozlabs.org/comment/1760594/","msgid":"<20170831011955.GB17741@lemon.lan>","list_archive_url":null,"date":"2017-08-31T01:19:55","subject":"Re: [Qemu-devel] [PATCH] block: Cleanup BMDS in bdrv_close_all","submitter":{"id":24872,"url":"http://patchwork.ozlabs.org/api/people/24872/","name":"Fam Zheng","email":"famz@redhat.com"},"content":"On Wed, 08/30 16:04, Juan Quintela wrote:\n> Fam Zheng <famz@redhat.com> wrote:\n> > On Wed, 08/30 13:49, Juan Quintela wrote:\n> >> Fam Zheng <famz@redhat.com> wrote:\n> >> > This fixes the assertion due to op blockers added by BMDS:\n> >> >\n> >> > block.c:3248: bdrv_delete: Assertion `bdrv_op_blocker_is_empty(bs)' failed.\n> >> >\n> >> > Reproducer: simply start block migration and quit QEMU before it ends.\n> >> >\n> >> > Cc: qemu-stable@nongnu.org\n> >> > Signed-off-by: Fam Zheng <famz@redhat.com>\n> >> \n> >> No need for one stub, see later.\n> >> \n> >> \n> >> > ---\n> >> >  block.c                 | 2 ++\n> >> >  migration/block.c       | 2 +-\n> >> >  migration/block.h       | 1 +\n> >> >  stubs/Makefile.objs     | 1 +\n> >> >  stubs/block-migration.c | 6 ++++++\n> >> >  5 files changed, 11 insertions(+), 1 deletion(-)\n> >> >  create mode 100644 stubs/block-migration.c\n> >> >\n> >> > diff --git a/block.c b/block.c\n> >> > index 3308814bba..508a57274d 100644\n> >> > --- a/block.c\n> >> > +++ b/block.c\n> >> > @@ -43,6 +43,7 @@\n> >> >  #include \"qemu/cutils.h\"\n> >> >  #include \"qemu/id.h\"\n> >> >  #include \"qapi/util.h\"\n> >> > +#include \"migration/block.h\"\n> >> \n> >> this should be misc.h\n> >> \n> >> >  \n> >> >  #ifdef CONFIG_BSD\n> >> >  #include <sys/ioctl.h>\n> >> > @@ -3111,6 +3112,7 @@ static void bdrv_close(BlockDriverState *bs)\n> >> >  \n> >> >  void bdrv_close_all(void)\n> >> >  {\n> >> > +    block_migration_cleanup_bmds();\n> >> >      block_job_cancel_sync_all();\n> >> >      nbd_export_close_all();\n> >> >  \n> >> \n> >> > diff --git a/migration/block.h b/migration/block.h\n> >> > index 22ebe94259..8bae1cf55a 100644\n> >> > --- a/migration/block.h\n> >> > +++ b/migration/block.h\n> >> > @@ -42,4 +42,5 @@ static inline uint64_t blk_mig_bytes_total(void)\n> >> >  #endif /* CONFIG_LIVE_BLOCK_MIGRATION */\n> >> >  \n> >> >  void migrate_set_block_enabled(bool value, Error **errp);\n> >> > +void block_migration_cleanup_bmds(void);\n> >> >  #endif /* MIGRATION_BLOCK_H */\n> >> > diff --git a/stubs/Makefile.objs b/stubs/Makefile.objs\n> >> > index e69c217aff..7540913767 100644\n> >> > --- a/stubs/Makefile.objs\n> >> > +++ b/stubs/Makefile.objs\n> >> > @@ -19,6 +19,7 @@ stub-obj-y += is-daemonized.o\n> >> >  stub-obj-$(CONFIG_LINUX_AIO) += linux-aio.o\n> >> >  stub-obj-y += machine-init-done.o\n> >> >  stub-obj-y += migr-blocker.o\n> >> > +stub-obj-y += block-migration.o\n> >> >  stub-obj-y += change-state-handler.o\n> >> >  stub-obj-y += monitor.o\n> >> >  stub-obj-y += notify-event.o\n> >> > diff --git a/stubs/block-migration.c b/stubs/block-migration.c\n> >> > new file mode 100644\n> >> > index 0000000000..855f15c757\n> >> > --- /dev/null\n> >> > +++ b/stubs/block-migration.c\n> >> > @@ -0,0 +1,6 @@\n> >> > +#include \"qemu/osdep.h\"\n> >> > +#include \"migration/block.h\"\n> >> > +\n> >> > +void block_migration_cleanup_bmds(void)\n> >> > +{\n> >> > +}\n> >> \n> >> You can add this inside include/migration/misc.h\n> >> \n> >> #ifdef CONFIG_LIVE_BLOCK_MIGRATION\n> >> void blk_mig_init(void);\n> >> #else\n> >> static inline void blk_mig_init(void) {}\n> >> \n> >> // And then you add the stub here?\n> >\n> > This doesn't work.  The function is not stubbed for !CONFIG_LIVE_BLOCK_MIGRATION\n> > configs, but for tools that don't link to common-obj-y. For example with your\n> > proposed change, I get:\n> >\n> >   LINK    qemu-nbd\n> > block.o: In function `bdrv_close_all':\n> > /home/fam/work/qemu/block.c:3115: undefined reference to\n> > `block_migration_cleanup_bmds'\n> > collect2: error: ld returned 1 exit status\n> > make: *** [/home/fam/work/qemu/rules.mak:121: qemu-nbd] Error 1\n> > make: Leaving directory '/home/fam/work/q/build'\n> \n> \n> This works for me, for both CONFIG_LIVE_BLOCK_MIGRATION enabled and not.\n> For qemu-system-x86_64 and qemu-nbd.  Could you test?\n\nI get the same error:\n\n  LINK    qemu-nbd\nblock.o: In function `bdrv_close_all':\n/home/fam/work/qemu/block.c:3115: undefined reference to `block_migration_cleanup_bmds'\ncollect2: error: ld returned 1 exit status\nmake: *** [/home/fam/work/qemu/rules.mak:121: qemu-nbd] Error 1\nmake: Leaving directory '/home/fam/work/q/build'\n\n(also applies to qemu-img etc.)\n\nFam\n\n---\n\n$ cat config.status \n#!/bin/sh\n# Generated by configure.\n# Run this file to recreate the current configuration.\n# Compiler output produced by configure, useful for debugging\n# configure, is in config.log if it exists.\nexec '/home/fam/work/qemu/configure' '--prefix=/home/fam/work/q/install/bdrv_close_all-bmds' '--enable-debug' '--extra-cflags=-Wno-error=format-truncation' '--target-list=x86_64-softmmu' \"$@\"\n\n$ grep CONFIG_LIVE_BLOCK_MIGRATION config-host.h\n#define CONFIG_LIVE_BLOCK_MIGRATION 1\n\n$ make qemu-nbd V=1\n(cd /home/fam/work/qemu; printf '#define QEMU_PKGVERSION '; if test -n \"\"; then printf '\"\"\\n'; else if test -d .git; then printf '\" ('; git describe --match 'v*' 2>/dev/null | tr -d '\\n'; if ! git diff-index --quiet HEAD &>/dev/null; then printf -- '-dirty'; fi; printf ')\"\\n'; else printf '\"\"\\n'; fi; fi) > qemu-version.h.tmp\nif ! cmp -s qemu-version.h qemu-version.h.tmp; then mv qemu-version.h.tmp qemu-version.h; else rm qemu-version.h.tmp; fi\nc++ -I/usr/include/pixman-1   -Werror -DHAS_LIBSSH2_SFTP_FSYNC -pthread -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include  -DNCURSES_WIDECHAR -D_GNU_SOURCE -D_DEFAULT_SOURCE  -fPIE -DPIE -m64 -mcx16 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Wstrict-prototypes -Wredundant-decls -Wall -Wundef -Wwrite-strings -Wmissing-prototypes -fno-strict-aliasing -fno-common -fwrapv  -Wno-error=format-truncation -Wexpansion-to-defined -Wendif-labels -Wno-shift-negative-value -Wno-missing-include-dirs -Wempty-body -Wnested-externs -Wformat-security -Wformat-y2k -Winit-self -Wignored-qualifiers -Wold-style-declaration -Wold-style-definition -Wtype-limits -fstack-protector-strong  -I/usr/include/p11-kit-1    -I/usr/include/libpng16  -I/usr/include/spice-1 -I/usr/include/spice-server -I/usr/include/cacard -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/nss3 -I/usr/include/nspr4 -pthread -I/usr/include/pixman-1  -I/usr/include/cacard -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/nss3 -I/usr/include/nspr4  -I/usr/include/libusb-1.0   -I/home/fam/work/qemu/tests -g  -Wl,--warn-common -Wl,-z,relro -Wl,-z,now -pie -m64 -g  -o qemu-nbd qemu-nbd.o block.o blockjob.o qemu-io-cmds.o replication.o block/raw-format.o block/qcow.o block/vdi.o block/vmdk.o block/cloop.o block/bochs.o block/vpc.o block/vvfat.o block/dmg.o block/qcow2.o block/qcow2-refcount.o block/qcow2-cluster.o block/qcow2-snapshot.o block/qcow2-cache.o block/qcow2-bitmap.o block/qed.o block/qed-l2-cache.o block/qed-table.o block/qed-cluster.o block/qed-check.o block/vhdx.o block/vhdx-endian.o block/vhdx-log.o block/quorum.o block/parallels.o block/blkdebug.o block/blkverify.o block/blkreplay.o block/block-backend.o block/snapshot.o block/qapi.o block/file-posix.o block/linux-aio.o block/null.o block/mirror.o block/commit.o block/io.o block/throttle-groups.o block/nbd.o block/nbd-client.o block/sheepdog.o block/iscsi-opts.o block/accounting.o block/dirty-bitmap.o block/write-threshold.o block/backup.o block/replication.o block/crypto.o nbd/server.o nbd/client.o nbd/common.o block/iscsi.o block/curl.o block/rbd.o block/gluster.o block/ssh.o block/dmg-bz2.o crypto/init.o crypto/hash.o crypto/hash-nettle.o crypto/hmac.o crypto/hmac-nettle.o crypto/aes.o crypto/desrfb.o crypto/cipher.o crypto/tlscreds.o crypto/tlscredsanon.o crypto/tlscredsx509.o crypto/tlssession.o crypto/secret.o crypto/random-gnutls.o crypto/pbkdf.o crypto/pbkdf-nettle.o crypto/ivgen.o crypto/ivgen-essiv.o crypto/ivgen-plain.o crypto/ivgen-plain64.o crypto/afsplit.o crypto/xts.o crypto/block.o crypto/block-qcow.o crypto/block-luks.o io/channel.o io/channel-buffer.o io/channel-command.o io/channel-file.o io/channel-socket.o io/channel-tls.o io/channel-watch.o io/channel-websock.o io/channel-util.o io/dns-resolver.o io/task.o qom/object.o qom/container.o qom/qom-qobject.o qom/object_interfaces.o  libqemuutil.a libqemustub.a  -lz -laio -L/usr/lib64/iscsi -liscsi -lcurl -lrbd -lrados -lacl -lgfapi -lglusterfs -lgfrpc -lgfxdr -luuid -lssh2 -lbz2 -lm -lgthread-2.0 -pthread -lglib-2.0   -lz -lrt -lz -lnettle  -lgnutls   -lutil\n\n$ nm migration/block.o | grep block_migration_cleanup_bmds\n00000000000011e8 T block_migration_cleanup_bmds\n\n\n> \n> gcommit 2888b96dfe5ea9c7901990f54e14b1a7ed3e46b9\n> Author: Fam Zheng <famz@redhat.com>\n> Date:   Wed Aug 30 18:06:05 2017 +0800\n> \n>     block: Cleanup BMDS in bdrv_close_all\n>     \n>     This fixes the assertion due to op blockers added by BMDS:\n>     \n>     block.c:3248: bdrv_delete: Assertion `bdrv_op_blocker_is_empty(bs)' failed.\n>     \n>     Reproducer: simply start block migration and quit QEMU before it ends.\n>     \n>     Cc: qemu-stable@nongnu.org\n>     Signed-off-by: Fam Zheng <famz@redhat.com>\n>     \n>     --\n>     \n>     Don't use stub\n> \n> diff --git a/block.c b/block.c\n> index 3615a6809e..4268f892da 100644\n> --- a/block.c\n> +++ b/block.c\n> @@ -43,6 +43,7 @@\n>  #include \"qemu/cutils.h\"\n>  #include \"qemu/id.h\"\n>  #include \"qapi/util.h\"\n> +#include \"migration/misc.h\"\n>  \n>  #ifdef CONFIG_BSD\n>  #include <sys/ioctl.h>\n> @@ -3111,6 +3112,7 @@ static void bdrv_close(BlockDriverState *bs)\n>  \n>  void bdrv_close_all(void)\n>  {\n> +    block_migration_cleanup_bmds();\n>      block_job_cancel_sync_all();\n>      nbd_export_close_all();\n>  \n> diff --git a/include/migration/misc.h b/include/migration/misc.h\n> index c079b7771b..6ecb7068d9 100644\n> --- a/include/migration/misc.h\n> +++ b/include/migration/misc.h\n> @@ -24,8 +24,10 @@ void ram_mig_init(void);\n>  \n>  #ifdef CONFIG_LIVE_BLOCK_MIGRATION\n>  void blk_mig_init(void);\n> +void block_migration_cleanup_bmds(void);\n>  #else\n>  static inline void blk_mig_init(void) {}\n> +static inline void block_migration_cleanup_bmds(void) {}\n>  #endif\n>  \n>  #define SELF_ANNOUNCE_ROUNDS 5\n> diff --git a/migration/block.c b/migration/block.c\n> index 9171f60028..c059e48484 100644\n> --- a/migration/block.c\n> +++ b/migration/block.c\n> @@ -673,7 +673,7 @@ static int64_t get_remaining_dirty(void)\n>  \n>  \n>  /* Called with iothread lock taken.  */\n> -static void block_migration_cleanup_bmds(void)\n> +void block_migration_cleanup_bmds(void)\n>  {\n>      BlkMigDevState *bmds;\n>      AioContext *ctx;\n> \n>","headers":{"Return-Path":"<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>","X-Original-To":"incoming@patchwork.ozlabs.org","Delivered-To":"patchwork-incoming@bilbo.ozlabs.org","Authentication-Results":["ozlabs.org;\n\tspf=pass (mailfrom) smtp.mailfrom=nongnu.org\n\t(client-ip=2001:4830:134:3::11; helo=lists.gnu.org;\n\tenvelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org;\n\treceiver=<UNKNOWN>)","ext-mx06.extmail.prod.ext.phx2.redhat.com;\n\tdmarc=none (p=none dis=none) header.from=redhat.com","ext-mx06.extmail.prod.ext.phx2.redhat.com;\n\tspf=fail smtp.mailfrom=famz@redhat.com"],"Received":["from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11])\n\t(using TLSv1 with cipher AES256-SHA (256/256 bits))\n\t(No client certificate requested)\n\tby ozlabs.org (Postfix) with ESMTPS id 3xjPhC0jycz9s7G\n\tfor <incoming@patchwork.ozlabs.org>;\n\tThu, 31 Aug 2017 11:20:41 +1000 (AEST)","from localhost ([::1]:53462 helo=lists.gnu.org)\n\tby lists.gnu.org with esmtp (Exim 4.71) (envelope-from\n\t<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>)\n\tid 1dnE9t-0000co-Qz\n\tfor incoming@patchwork.ozlabs.org; Wed, 30 Aug 2017 21:20:37 -0400","from eggs.gnu.org ([2001:4830:134:3::10]:57223)\n\tby lists.gnu.org with esmtp (Exim 4.71)\n\t(envelope-from <famz@redhat.com>) id 1dnE9R-0000Va-5L\n\tfor qemu-devel@nongnu.org; Wed, 30 Aug 2017 21:20:10 -0400","from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)\n\t(envelope-from <famz@redhat.com>) id 1dnE9P-00016w-HQ\n\tfor qemu-devel@nongnu.org; Wed, 30 Aug 2017 21:20:09 -0400","from mx1.redhat.com ([209.132.183.28]:34970)\n\tby eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32)\n\t(Exim 4.71) (envelope-from <famz@redhat.com>)\n\tid 1dnE9K-000155-08; Wed, 30 Aug 2017 21:20:02 -0400","from smtp.corp.redhat.com\n\t(int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13])\n\t(using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits))\n\t(No client certificate requested)\n\tby mx1.redhat.com (Postfix) with ESMTPS id A943B3680E;\n\tThu, 31 Aug 2017 01:20:00 +0000 (UTC)","from localhost (ovpn-12-59.pek2.redhat.com [10.72.12.59])\n\tby smtp.corp.redhat.com (Postfix) with ESMTP id 293C17093F;\n\tThu, 31 Aug 2017 01:19:56 +0000 (UTC)"],"DMARC-Filter":"OpenDMARC Filter v1.3.2 mx1.redhat.com A943B3680E","Date":"Thu, 31 Aug 2017 09:19:55 +0800","From":"Fam Zheng <famz@redhat.com>","To":"Juan Quintela <quintela@redhat.com>","Message-ID":"<20170831011955.GB17741@lemon.lan>","References":"<20170830100605.22694-1-famz@redhat.com>\n\t<87mv6h5l87.fsf@secure.mitica> <20170830131847.GP4208@lemon.lan>\n\t<87efrt5ezs.fsf@secure.mitica>","MIME-Version":"1.0","Content-Type":"text/plain; charset=us-ascii","Content-Disposition":"inline","Content-Transfer-Encoding":"quoted-printable","In-Reply-To":"<87efrt5ezs.fsf@secure.mitica>","User-Agent":"Mutt/1.8.3 (2017-05-23)","X-Scanned-By":"MIMEDefang 2.79 on 10.5.11.13","X-Greylist":"Sender IP whitelisted, not delayed by milter-greylist-4.5.16\n\t(mx1.redhat.com [10.5.110.30]);\n\tThu, 31 Aug 2017 01:20:00 +0000 (UTC)","X-detected-operating-system":"by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic]\n\t[fuzzy]","X-Received-From":"209.132.183.28","Subject":"Re: [Qemu-devel] [PATCH] block: Cleanup BMDS in bdrv_close_all","X-BeenThere":"qemu-devel@nongnu.org","X-Mailman-Version":"2.1.21","Precedence":"list","List-Id":"<qemu-devel.nongnu.org>","List-Unsubscribe":"<https://lists.nongnu.org/mailman/options/qemu-devel>,\n\t<mailto:qemu-devel-request@nongnu.org?subject=unsubscribe>","List-Archive":"<http://lists.nongnu.org/archive/html/qemu-devel/>","List-Post":"<mailto:qemu-devel@nongnu.org>","List-Help":"<mailto:qemu-devel-request@nongnu.org?subject=help>","List-Subscribe":"<https://lists.nongnu.org/mailman/listinfo/qemu-devel>,\n\t<mailto:qemu-devel-request@nongnu.org?subject=subscribe>","Cc":"Kevin Wolf <kwolf@redhat.com>, qemu-block@nongnu.org,\n\tqemu-stable@nongnu.org, qemu-devel@nongnu.org, peterx@redhat.com,\n\tMax Reitz <mreitz@redhat.com>,\n\t\"Dr. David Alan Gilbert\" <dgilbert@redhat.com>","Errors-To":"qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org","Sender":"\"Qemu-devel\"\n\t<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>"}},{"id":1761614,"web_url":"http://patchwork.ozlabs.org/comment/1761614/","msgid":"<8760d28x40.fsf@secure.laptop>","list_archive_url":null,"date":"2017-09-01T11:41:19","subject":"Re: [Qemu-devel] [PATCH] block: Cleanup BMDS in bdrv_close_all","submitter":{"id":2643,"url":"http://patchwork.ozlabs.org/api/people/2643/","name":"Juan Quintela","email":"quintela@redhat.com"},"content":"Fam Zheng <famz@redhat.com> wrote:\n> This fixes the assertion due to op blockers added by BMDS:\n>\n> block.c:3248: bdrv_delete: Assertion `bdrv_op_blocker_is_empty(bs)' failed.\n>\n> Reproducer: simply start block migration and quit QEMU before it ends.\n>\n> Cc: qemu-stable@nongnu.org\n> Signed-off-by: Fam Zheng <famz@redhat.com>\n\nReviewed-by: Juan Quintela <quintela@redhat.com>\n\nThis stub stuff is crazy.\n\nFam, you were right (a.k.a. I was wrong).\n\nSorry, Juan.","headers":{"Return-Path":"<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>","X-Original-To":"incoming@patchwork.ozlabs.org","Delivered-To":"patchwork-incoming@bilbo.ozlabs.org","Authentication-Results":["ozlabs.org;\n\tspf=pass (mailfrom) smtp.mailfrom=nongnu.org\n\t(client-ip=2001:4830:134:3::11; helo=lists.gnu.org;\n\tenvelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org;\n\treceiver=<UNKNOWN>)","ext-mx03.extmail.prod.ext.phx2.redhat.com;\n\tdmarc=none (p=none dis=none) header.from=redhat.com","ext-mx03.extmail.prod.ext.phx2.redhat.com;\n\tspf=fail smtp.mailfrom=quintela@redhat.com"],"Received":["from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11])\n\t(using TLSv1 with cipher AES256-SHA (256/256 bits))\n\t(No client certificate requested)\n\tby ozlabs.org (Postfix) with ESMTPS id 3xkHXT6xYtz9sRV\n\tfor <incoming@patchwork.ozlabs.org>;\n\tFri,  1 Sep 2017 21:47:05 +1000 (AEST)","from localhost ([::1]:36692 helo=lists.gnu.org)\n\tby lists.gnu.org with esmtp (Exim 4.71) (envelope-from\n\t<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>)\n\tid 1dnkPf-0006X4-VF\n\tfor incoming@patchwork.ozlabs.org; Fri, 01 Sep 2017 07:47:04 -0400","from eggs.gnu.org ([2001:4830:134:3::10]:34359)\n\tby lists.gnu.org with esmtp (Exim 4.71)\n\t(envelope-from <quintela@redhat.com>) id 1dnkKI-0001oa-9x\n\tfor qemu-devel@nongnu.org; Fri, 01 Sep 2017 07:41:31 -0400","from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)\n\t(envelope-from <quintela@redhat.com>) id 1dnkKH-0001jB-KU\n\tfor qemu-devel@nongnu.org; Fri, 01 Sep 2017 07:41:30 -0400","from mx1.redhat.com ([209.132.183.28]:41476)\n\tby eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32)\n\t(Exim 4.71) (envelope-from <quintela@redhat.com>)\n\tid 1dnkKD-0001hv-Ro; Fri, 01 Sep 2017 07:41:25 -0400","from smtp.corp.redhat.com\n\t(int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11])\n\t(using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits))\n\t(No client certificate requested)\n\tby mx1.redhat.com (Postfix) with ESMTPS id BA62083F44;\n\tFri,  1 Sep 2017 11:41:24 +0000 (UTC)","from localhost (ovpn-117-184.ams2.redhat.com [10.36.117.184])\n\tby smtp.corp.redhat.com (Postfix) with ESMTP id 354139341F;\n\tFri,  1 Sep 2017 11:41:20 +0000 (UTC)"],"DMARC-Filter":"OpenDMARC Filter v1.3.2 mx1.redhat.com BA62083F44","From":"Juan Quintela <quintela@redhat.com>","To":"Fam Zheng <famz@redhat.com>","In-Reply-To":"<20170830100605.22694-1-famz@redhat.com> (Fam Zheng's message of\n\t\"Wed, 30 Aug 2017 18:06:05 +0800\")","References":"<20170830100605.22694-1-famz@redhat.com>","User-Agent":"Gnus/5.13 (Gnus v5.13) Emacs/25.2 (gnu/linux)","Date":"Fri, 01 Sep 2017 13:41:19 +0200","Message-ID":"<8760d28x40.fsf@secure.laptop>","MIME-Version":"1.0","Content-Type":"text/plain","X-Scanned-By":"MIMEDefang 2.79 on 10.5.11.11","X-Greylist":"Sender IP whitelisted, not delayed by milter-greylist-4.5.16\n\t(mx1.redhat.com [10.5.110.27]);\n\tFri, 01 Sep 2017 11:41:24 +0000 (UTC)","X-detected-operating-system":"by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic]\n\t[fuzzy]","X-Received-From":"209.132.183.28","Subject":"Re: [Qemu-devel] [PATCH] block: Cleanup BMDS in bdrv_close_all","X-BeenThere":"qemu-devel@nongnu.org","X-Mailman-Version":"2.1.21","Precedence":"list","List-Id":"<qemu-devel.nongnu.org>","List-Unsubscribe":"<https://lists.nongnu.org/mailman/options/qemu-devel>,\n\t<mailto:qemu-devel-request@nongnu.org?subject=unsubscribe>","List-Archive":"<http://lists.nongnu.org/archive/html/qemu-devel/>","List-Post":"<mailto:qemu-devel@nongnu.org>","List-Help":"<mailto:qemu-devel-request@nongnu.org?subject=help>","List-Subscribe":"<https://lists.nongnu.org/mailman/listinfo/qemu-devel>,\n\t<mailto:qemu-devel-request@nongnu.org?subject=subscribe>","Reply-To":"quintela@redhat.com","Cc":"Kevin Wolf <kwolf@redhat.com>, qemu-block@nongnu.org,\n\tqemu-stable@nongnu.org, qemu-devel@nongnu.org, peterx@redhat.com,\n\tMax Reitz <mreitz@redhat.com>,\n\t\"Dr. David Alan Gilbert\" <dgilbert@redhat.com>","Errors-To":"qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org","Sender":"\"Qemu-devel\"\n\t<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>"}},{"id":1762946,"web_url":"http://patchwork.ozlabs.org/comment/1762946/","msgid":"<20170905033710.GT22515@lemon.lan>","list_archive_url":null,"date":"2017-09-05T03:37:10","subject":"Re: [Qemu-devel] [PATCH] block: Cleanup BMDS in bdrv_close_all","submitter":{"id":24872,"url":"http://patchwork.ozlabs.org/api/people/24872/","name":"Fam Zheng","email":"famz@redhat.com"},"content":"On Fri, 09/01 13:41, Juan Quintela wrote:\n> Fam Zheng <famz@redhat.com> wrote:\n> > This fixes the assertion due to op blockers added by BMDS:\n> >\n> > block.c:3248: bdrv_delete: Assertion `bdrv_op_blocker_is_empty(bs)' failed.\n> >\n> > Reproducer: simply start block migration and quit QEMU before it ends.\n> >\n> > Cc: qemu-stable@nongnu.org\n> > Signed-off-by: Fam Zheng <famz@redhat.com>\n> \n> Reviewed-by: Juan Quintela <quintela@redhat.com>\n> \n> This stub stuff is crazy.\n> \n> Fam, you were right (a.k.a. I was wrong).\n> \n> Sorry, Juan.\n\nStefan, will you merge this?\n\nFam","headers":{"Return-Path":"<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>","X-Original-To":"incoming@patchwork.ozlabs.org","Delivered-To":"patchwork-incoming@bilbo.ozlabs.org","Authentication-Results":["ozlabs.org;\n\tspf=pass (mailfrom) smtp.mailfrom=nongnu.org\n\t(client-ip=2001:4830:134:3::11; helo=lists.gnu.org;\n\tenvelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org;\n\treceiver=<UNKNOWN>)","ext-mx08.extmail.prod.ext.phx2.redhat.com;\n\tdmarc=none (p=none dis=none) header.from=redhat.com","ext-mx08.extmail.prod.ext.phx2.redhat.com;\n\tspf=fail smtp.mailfrom=famz@redhat.com"],"Received":["from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11])\n\t(using TLSv1 with cipher AES256-SHA (256/256 bits))\n\t(No client certificate requested)\n\tby ozlabs.org (Postfix) with ESMTPS id 3xmXVH4yK3z9sNr\n\tfor <incoming@patchwork.ozlabs.org>;\n\tTue,  5 Sep 2017 13:37:57 +1000 (AEST)","from localhost ([::1]:56668 helo=lists.gnu.org)\n\tby lists.gnu.org with esmtp (Exim 4.71) (envelope-from\n\t<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>)\n\tid 1dp4gW-0006ch-3e\n\tfor incoming@patchwork.ozlabs.org; Mon, 04 Sep 2017 23:37:56 -0400","from eggs.gnu.org ([2001:4830:134:3::10]:36522)\n\tby lists.gnu.org with esmtp (Exim 4.71)\n\t(envelope-from <famz@redhat.com>) id 1dp4g5-0006bS-Bq\n\tfor qemu-devel@nongnu.org; Mon, 04 Sep 2017 23:37:34 -0400","from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)\n\t(envelope-from <famz@redhat.com>) id 1dp4g0-0003VY-Py\n\tfor qemu-devel@nongnu.org; Mon, 04 Sep 2017 23:37:29 -0400","from mx1.redhat.com ([209.132.183.28]:55588)\n\tby eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32)\n\t(Exim 4.71) (envelope-from <famz@redhat.com>)\n\tid 1dp4fr-0003Ng-CU; Mon, 04 Sep 2017 23:37:15 -0400","from smtp.corp.redhat.com\n\t(int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12])\n\t(using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits))\n\t(No client certificate requested)\n\tby mx1.redhat.com (Postfix) with ESMTPS id 56F00C0546CE;\n\tTue,  5 Sep 2017 03:37:14 +0000 (UTC)","from localhost (ovpn-12-97.pek2.redhat.com [10.72.12.97])\n\tby smtp.corp.redhat.com (Postfix) with ESMTP id 492FA7F812;\n\tTue,  5 Sep 2017 03:37:11 +0000 (UTC)"],"DMARC-Filter":"OpenDMARC Filter v1.3.2 mx1.redhat.com 56F00C0546CE","Date":"Tue, 5 Sep 2017 11:37:10 +0800","From":"Fam Zheng <famz@redhat.com>","To":"stefanha@redhat.com","Message-ID":"<20170905033710.GT22515@lemon.lan>","References":"<20170830100605.22694-1-famz@redhat.com>\n\t<8760d28x40.fsf@secure.laptop>","MIME-Version":"1.0","Content-Type":"text/plain; charset=us-ascii","Content-Disposition":"inline","In-Reply-To":"<8760d28x40.fsf@secure.laptop>","User-Agent":"Mutt/1.8.3 (2017-05-23)","X-Scanned-By":"MIMEDefang 2.79 on 10.5.11.12","X-Greylist":"Sender IP whitelisted, not delayed by milter-greylist-4.5.16\n\t(mx1.redhat.com [10.5.110.32]);\n\tTue, 05 Sep 2017 03:37:14 +0000 (UTC)","X-detected-operating-system":"by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic]\n\t[fuzzy]","X-Received-From":"209.132.183.28","Subject":"Re: [Qemu-devel] [PATCH] block: Cleanup BMDS in bdrv_close_all","X-BeenThere":"qemu-devel@nongnu.org","X-Mailman-Version":"2.1.21","Precedence":"list","List-Id":"<qemu-devel.nongnu.org>","List-Unsubscribe":"<https://lists.nongnu.org/mailman/options/qemu-devel>,\n\t<mailto:qemu-devel-request@nongnu.org?subject=unsubscribe>","List-Archive":"<http://lists.nongnu.org/archive/html/qemu-devel/>","List-Post":"<mailto:qemu-devel@nongnu.org>","List-Help":"<mailto:qemu-devel-request@nongnu.org?subject=help>","List-Subscribe":"<https://lists.nongnu.org/mailman/listinfo/qemu-devel>,\n\t<mailto:qemu-devel-request@nongnu.org?subject=subscribe>","Cc":"Kevin Wolf <kwolf@redhat.com>, qemu-block@nongnu.org,\n\tJuan Quintela <quintela@redhat.com>, qemu-stable@nongnu.org,\n\tpeterx@redhat.com, qemu-devel@nongnu.org, Max Reitz <mreitz@redhat.com>, \n\t\"Dr. David Alan Gilbert\" <dgilbert@redhat.com>","Errors-To":"qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org","Sender":"\"Qemu-devel\"\n\t<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>"}},{"id":1763071,"web_url":"http://patchwork.ozlabs.org/comment/1763071/","msgid":"<20170905084431.GA4633@localhost.localdomain>","list_archive_url":null,"date":"2017-09-05T08:44:31","subject":"Re: [Qemu-devel] [PATCH] block: Cleanup BMDS in bdrv_close_all","submitter":{"id":2714,"url":"http://patchwork.ozlabs.org/api/people/2714/","name":"Kevin Wolf","email":"kwolf@redhat.com"},"content":"Am 30.08.2017 um 12:06 hat Fam Zheng geschrieben:\n> This fixes the assertion due to op blockers added by BMDS:\n> \n> block.c:3248: bdrv_delete: Assertion `bdrv_op_blocker_is_empty(bs)' failed.\n> \n> Reproducer: simply start block migration and quit QEMU before it ends.\n> \n> Cc: qemu-stable@nongnu.org\n> Signed-off-by: Fam Zheng <famz@redhat.com>\n> ---\n>  block.c                 | 2 ++\n>  migration/block.c       | 2 +-\n>  migration/block.h       | 1 +\n>  stubs/Makefile.objs     | 1 +\n>  stubs/block-migration.c | 6 ++++++\n>  5 files changed, 11 insertions(+), 1 deletion(-)\n>  create mode 100644 stubs/block-migration.c\n> \n> diff --git a/block.c b/block.c\n> index 3308814bba..508a57274d 100644\n> --- a/block.c\n> +++ b/block.c\n> @@ -43,6 +43,7 @@\n>  #include \"qemu/cutils.h\"\n>  #include \"qemu/id.h\"\n>  #include \"qapi/util.h\"\n> +#include \"migration/block.h\"\n>  \n>  #ifdef CONFIG_BSD\n>  #include <sys/ioctl.h>\n> @@ -3111,6 +3112,7 @@ static void bdrv_close(BlockDriverState *bs)\n>  \n>  void bdrv_close_all(void)\n>  {\n> +    block_migration_cleanup_bmds();\n>      block_job_cancel_sync_all();\n>      nbd_export_close_all();\n\nThis is before bdrv_drain_all(). Can't we still have a block migration\nrequest in flight, whose callback will then dereference a stale pointer?\n\nKevin","headers":{"Return-Path":"<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>","X-Original-To":"incoming@patchwork.ozlabs.org","Delivered-To":"patchwork-incoming@bilbo.ozlabs.org","Authentication-Results":["ozlabs.org;\n\tspf=pass (mailfrom) smtp.mailfrom=nongnu.org\n\t(client-ip=2001:4830:134:3::11; helo=lists.gnu.org;\n\tenvelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org;\n\treceiver=<UNKNOWN>)","ext-mx10.extmail.prod.ext.phx2.redhat.com;\n\tdmarc=none (p=none dis=none) header.from=redhat.com","ext-mx10.extmail.prod.ext.phx2.redhat.com;\n\tspf=fail smtp.mailfrom=kwolf@redhat.com"],"Received":["from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11])\n\t(using TLSv1 with cipher AES256-SHA (256/256 bits))\n\t(No client certificate requested)\n\tby ozlabs.org (Postfix) with ESMTPS id 3xmgKb5Dxgz9sNq\n\tfor <incoming@patchwork.ozlabs.org>;\n\tTue,  5 Sep 2017 18:45:55 +1000 (AEST)","from localhost ([::1]:57455 helo=lists.gnu.org)\n\tby lists.gnu.org with esmtp (Exim 4.71) (envelope-from\n\t<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>)\n\tid 1dp9UX-0003Xa-OG\n\tfor incoming@patchwork.ozlabs.org; Tue, 05 Sep 2017 04:45:53 -0400","from eggs.gnu.org ([2001:4830:134:3::10]:49247)\n\tby lists.gnu.org with esmtp (Exim 4.71)\n\t(envelope-from <kwolf@redhat.com>) id 1dp9Tl-0003MQ-0g\n\tfor qemu-devel@nongnu.org; Tue, 05 Sep 2017 04:45:14 -0400","from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)\n\t(envelope-from <kwolf@redhat.com>) id 1dp9Tg-0000lX-ER\n\tfor qemu-devel@nongnu.org; Tue, 05 Sep 2017 04:45:05 -0400","from mx1.redhat.com ([209.132.183.28]:39884)\n\tby eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32)\n\t(Exim 4.71) (envelope-from <kwolf@redhat.com>)\n\tid 1dp9TS-0000dv-Au; Tue, 05 Sep 2017 04:44:46 -0400","from smtp.corp.redhat.com\n\t(int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12])\n\t(using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits))\n\t(No client certificate requested)\n\tby mx1.redhat.com (Postfix) with ESMTPS id 148FF25BAF;\n\tTue,  5 Sep 2017 08:44:45 +0000 (UTC)","from localhost.localdomain (ovpn-117-102.ams2.redhat.com\n\t[10.36.117.102])\n\tby smtp.corp.redhat.com (Postfix) with ESMTPS id 641298C389;\n\tTue,  5 Sep 2017 08:44:38 +0000 (UTC)"],"DMARC-Filter":"OpenDMARC Filter v1.3.2 mx1.redhat.com 148FF25BAF","Date":"Tue, 5 Sep 2017 10:44:31 +0200","From":"Kevin Wolf <kwolf@redhat.com>","To":"Fam Zheng <famz@redhat.com>","Message-ID":"<20170905084431.GA4633@localhost.localdomain>","References":"<20170830100605.22694-1-famz@redhat.com>","MIME-Version":"1.0","Content-Type":"text/plain; charset=us-ascii","Content-Disposition":"inline","In-Reply-To":"<20170830100605.22694-1-famz@redhat.com>","User-Agent":"Mutt/1.8.3 (2017-05-23)","X-Scanned-By":"MIMEDefang 2.79 on 10.5.11.12","X-Greylist":"Sender IP whitelisted, not delayed by milter-greylist-4.5.16\n\t(mx1.redhat.com [10.5.110.39]);\n\tTue, 05 Sep 2017 08:44:45 +0000 (UTC)","X-detected-operating-system":"by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic]\n\t[fuzzy]","X-Received-From":"209.132.183.28","Subject":"Re: [Qemu-devel] [PATCH] block: Cleanup BMDS in bdrv_close_all","X-BeenThere":"qemu-devel@nongnu.org","X-Mailman-Version":"2.1.21","Precedence":"list","List-Id":"<qemu-devel.nongnu.org>","List-Unsubscribe":"<https://lists.nongnu.org/mailman/options/qemu-devel>,\n\t<mailto:qemu-devel-request@nongnu.org?subject=unsubscribe>","List-Archive":"<http://lists.nongnu.org/archive/html/qemu-devel/>","List-Post":"<mailto:qemu-devel@nongnu.org>","List-Help":"<mailto:qemu-devel-request@nongnu.org?subject=help>","List-Subscribe":"<https://lists.nongnu.org/mailman/listinfo/qemu-devel>,\n\t<mailto:qemu-devel-request@nongnu.org?subject=subscribe>","Cc":"qemu-block@nongnu.org, Juan Quintela <quintela@redhat.com>,\n\tqemu-devel@nongnu.org, qemu-stable@nongnu.org, peterx@redhat.com,\n\tMax Reitz <mreitz@redhat.com>,\n\t\"Dr. David Alan Gilbert\" <dgilbert@redhat.com>","Errors-To":"qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org","Sender":"\"Qemu-devel\"\n\t<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>"}},{"id":1763080,"web_url":"http://patchwork.ozlabs.org/comment/1763080/","msgid":"<20170905085441.GU22515@lemon.lan>","list_archive_url":null,"date":"2017-09-05T08:54:41","subject":"Re: [Qemu-devel] [PATCH] block: Cleanup BMDS in bdrv_close_all","submitter":{"id":24872,"url":"http://patchwork.ozlabs.org/api/people/24872/","name":"Fam Zheng","email":"famz@redhat.com"},"content":"On Tue, 09/05 10:44, Kevin Wolf wrote:\n> Am 30.08.2017 um 12:06 hat Fam Zheng geschrieben:\n> > This fixes the assertion due to op blockers added by BMDS:\n> > \n> > block.c:3248: bdrv_delete: Assertion `bdrv_op_blocker_is_empty(bs)' failed.\n> > \n> > Reproducer: simply start block migration and quit QEMU before it ends.\n> > \n> > Cc: qemu-stable@nongnu.org\n> > Signed-off-by: Fam Zheng <famz@redhat.com>\n> > ---\n> >  block.c                 | 2 ++\n> >  migration/block.c       | 2 +-\n> >  migration/block.h       | 1 +\n> >  stubs/Makefile.objs     | 1 +\n> >  stubs/block-migration.c | 6 ++++++\n> >  5 files changed, 11 insertions(+), 1 deletion(-)\n> >  create mode 100644 stubs/block-migration.c\n> > \n> > diff --git a/block.c b/block.c\n> > index 3308814bba..508a57274d 100644\n> > --- a/block.c\n> > +++ b/block.c\n> > @@ -43,6 +43,7 @@\n> >  #include \"qemu/cutils.h\"\n> >  #include \"qemu/id.h\"\n> >  #include \"qapi/util.h\"\n> > +#include \"migration/block.h\"\n> >  \n> >  #ifdef CONFIG_BSD\n> >  #include <sys/ioctl.h>\n> > @@ -3111,6 +3112,7 @@ static void bdrv_close(BlockDriverState *bs)\n> >  \n> >  void bdrv_close_all(void)\n> >  {\n> > +    block_migration_cleanup_bmds();\n> >      block_job_cancel_sync_all();\n> >      nbd_export_close_all();\n> \n> This is before bdrv_drain_all(). Can't we still have a block migration\n> request in flight, whose callback will then dereference a stale pointer?\n\nYou're right, bdrv_drain_all should be called first.\n\nFam","headers":{"Return-Path":"<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>","X-Original-To":"incoming@patchwork.ozlabs.org","Delivered-To":"patchwork-incoming@bilbo.ozlabs.org","Authentication-Results":["ozlabs.org;\n\tspf=pass (mailfrom) smtp.mailfrom=nongnu.org\n\t(client-ip=2001:4830:134:3::11; helo=lists.gnu.org;\n\tenvelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org;\n\treceiver=<UNKNOWN>)","ext-mx08.extmail.prod.ext.phx2.redhat.com;\n\tdmarc=none (p=none dis=none) header.from=redhat.com","ext-mx08.extmail.prod.ext.phx2.redhat.com;\n\tspf=fail smtp.mailfrom=famz@redhat.com"],"Received":["from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11])\n\t(using TLSv1 with cipher AES256-SHA (256/256 bits))\n\t(No client certificate requested)\n\tby ozlabs.org (Postfix) with ESMTPS id 3xmgY74WK8z9s7h\n\tfor <incoming@patchwork.ozlabs.org>;\n\tTue,  5 Sep 2017 18:55:55 +1000 (AEST)","from localhost ([::1]:57492 helo=lists.gnu.org)\n\tby lists.gnu.org with esmtp (Exim 4.71) (envelope-from\n\t<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>)\n\tid 1dp9eD-0008E3-H5\n\tfor incoming@patchwork.ozlabs.org; Tue, 05 Sep 2017 04:55:53 -0400","from eggs.gnu.org ([2001:4830:134:3::10]:56571)\n\tby lists.gnu.org with esmtp (Exim 4.71)\n\t(envelope-from <famz@redhat.com>) id 1dp9dZ-0007wL-Ug\n\tfor qemu-devel@nongnu.org; Tue, 05 Sep 2017 04:55:23 -0400","from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)\n\t(envelope-from <famz@redhat.com>) id 1dp9dR-0007dK-28\n\tfor qemu-devel@nongnu.org; Tue, 05 Sep 2017 04:55:09 -0400","from mx1.redhat.com ([209.132.183.28]:46766)\n\tby eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32)\n\t(Exim 4.71) (envelope-from <famz@redhat.com>)\n\tid 1dp9dC-0007UX-1A; Tue, 05 Sep 2017 04:54:50 -0400","from smtp.corp.redhat.com\n\t(int-mx06.intmail.prod.int.phx2.redhat.com [10.5.11.16])\n\t(using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits))\n\t(No client certificate requested)\n\tby mx1.redhat.com (Postfix) with ESMTPS id 12771C0587DB;\n\tTue,  5 Sep 2017 08:54:48 +0000 (UTC)","from localhost (ovpn-12-97.pek2.redhat.com [10.72.12.97])\n\tby smtp.corp.redhat.com (Postfix) with ESMTP id 8BD82777FC;\n\tTue,  5 Sep 2017 08:54:42 +0000 (UTC)"],"DMARC-Filter":"OpenDMARC Filter v1.3.2 mx1.redhat.com 12771C0587DB","Date":"Tue, 5 Sep 2017 16:54:41 +0800","From":"Fam Zheng <famz@redhat.com>","To":"Kevin Wolf <kwolf@redhat.com>","Message-ID":"<20170905085441.GU22515@lemon.lan>","References":"<20170830100605.22694-1-famz@redhat.com>\n\t<20170905084431.GA4633@localhost.localdomain>","MIME-Version":"1.0","Content-Type":"text/plain; charset=us-ascii","Content-Disposition":"inline","In-Reply-To":"<20170905084431.GA4633@localhost.localdomain>","User-Agent":"Mutt/1.8.3 (2017-05-23)","X-Scanned-By":"MIMEDefang 2.79 on 10.5.11.16","X-Greylist":"Sender IP whitelisted, not delayed by milter-greylist-4.5.16\n\t(mx1.redhat.com [10.5.110.32]);\n\tTue, 05 Sep 2017 08:54:48 +0000 (UTC)","X-detected-operating-system":"by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic]\n\t[fuzzy]","X-Received-From":"209.132.183.28","Subject":"Re: [Qemu-devel] [PATCH] block: Cleanup BMDS in bdrv_close_all","X-BeenThere":"qemu-devel@nongnu.org","X-Mailman-Version":"2.1.21","Precedence":"list","List-Id":"<qemu-devel.nongnu.org>","List-Unsubscribe":"<https://lists.nongnu.org/mailman/options/qemu-devel>,\n\t<mailto:qemu-devel-request@nongnu.org?subject=unsubscribe>","List-Archive":"<http://lists.nongnu.org/archive/html/qemu-devel/>","List-Post":"<mailto:qemu-devel@nongnu.org>","List-Help":"<mailto:qemu-devel-request@nongnu.org?subject=help>","List-Subscribe":"<https://lists.nongnu.org/mailman/listinfo/qemu-devel>,\n\t<mailto:qemu-devel-request@nongnu.org?subject=subscribe>","Cc":"qemu-block@nongnu.org, Juan Quintela <quintela@redhat.com>,\n\tqemu-devel@nongnu.org, qemu-stable@nongnu.org, peterx@redhat.com,\n\tMax Reitz <mreitz@redhat.com>,\n\t\"Dr. David Alan Gilbert\" <dgilbert@redhat.com>","Errors-To":"qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org","Sender":"\"Qemu-devel\"\n\t<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>"}},{"id":1763101,"web_url":"http://patchwork.ozlabs.org/comment/1763101/","msgid":"<20170905090655.GC4633@localhost.localdomain>","list_archive_url":null,"date":"2017-09-05T09:06:55","subject":"Re: [Qemu-devel] [PATCH] block: Cleanup BMDS in bdrv_close_all","submitter":{"id":2714,"url":"http://patchwork.ozlabs.org/api/people/2714/","name":"Kevin Wolf","email":"kwolf@redhat.com"},"content":"Am 05.09.2017 um 10:54 hat Fam Zheng geschrieben:\n> On Tue, 09/05 10:44, Kevin Wolf wrote:\n> > Am 30.08.2017 um 12:06 hat Fam Zheng geschrieben:\n> > > This fixes the assertion due to op blockers added by BMDS:\n> > > \n> > > block.c:3248: bdrv_delete: Assertion `bdrv_op_blocker_is_empty(bs)' failed.\n> > > \n> > > Reproducer: simply start block migration and quit QEMU before it ends.\n> > > \n> > > Cc: qemu-stable@nongnu.org\n> > > Signed-off-by: Fam Zheng <famz@redhat.com>\n> > > ---\n> > >  block.c                 | 2 ++\n> > >  migration/block.c       | 2 +-\n> > >  migration/block.h       | 1 +\n> > >  stubs/Makefile.objs     | 1 +\n> > >  stubs/block-migration.c | 6 ++++++\n> > >  5 files changed, 11 insertions(+), 1 deletion(-)\n> > >  create mode 100644 stubs/block-migration.c\n> > > \n> > > diff --git a/block.c b/block.c\n> > > index 3308814bba..508a57274d 100644\n> > > --- a/block.c\n> > > +++ b/block.c\n> > > @@ -43,6 +43,7 @@\n> > >  #include \"qemu/cutils.h\"\n> > >  #include \"qemu/id.h\"\n> > >  #include \"qapi/util.h\"\n> > > +#include \"migration/block.h\"\n> > >  \n> > >  #ifdef CONFIG_BSD\n> > >  #include <sys/ioctl.h>\n> > > @@ -3111,6 +3112,7 @@ static void bdrv_close(BlockDriverState *bs)\n> > >  \n> > >  void bdrv_close_all(void)\n> > >  {\n> > > +    block_migration_cleanup_bmds();\n> > >      block_job_cancel_sync_all();\n> > >      nbd_export_close_all();\n> > \n> > This is before bdrv_drain_all(). Can't we still have a block migration\n> > request in flight, whose callback will then dereference a stale pointer?\n> \n> You're right, bdrv_drain_all should be called first.\n\nActually, looking a bit closer, what prevents the migration thread from\nstarting new requests even after bdrv_drain_all()? Maybe what we really\nneed to do is cancelling the migration before calling bdrv_close_all().\n\nKevin","headers":{"Return-Path":"<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>","X-Original-To":"incoming@patchwork.ozlabs.org","Delivered-To":"patchwork-incoming@bilbo.ozlabs.org","Authentication-Results":["ozlabs.org;\n\tspf=pass (mailfrom) smtp.mailfrom=nongnu.org\n\t(client-ip=2001:4830:134:3::11; helo=lists.gnu.org;\n\tenvelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org;\n\treceiver=<UNKNOWN>)","ext-mx05.extmail.prod.ext.phx2.redhat.com;\n\tdmarc=none (p=none dis=none) header.from=redhat.com","ext-mx05.extmail.prod.ext.phx2.redhat.com;\n\tspf=fail smtp.mailfrom=kwolf@redhat.com"],"Received":["from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11])\n\t(using TLSv1 with cipher AES256-SHA (256/256 bits))\n\t(No client certificate requested)\n\tby ozlabs.org (Postfix) with ESMTPS id 3xmgq94pJkz9sPk\n\tfor <incoming@patchwork.ozlabs.org>;\n\tTue,  5 Sep 2017 19:08:05 +1000 (AEST)","from localhost ([::1]:57558 helo=lists.gnu.org)\n\tby lists.gnu.org with esmtp (Exim 4.71) (envelope-from\n\t<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>)\n\tid 1dp9pz-000886-Oy\n\tfor incoming@patchwork.ozlabs.org; Tue, 05 Sep 2017 05:08:03 -0400","from eggs.gnu.org ([2001:4830:134:3::10]:33563)\n\tby lists.gnu.org with esmtp (Exim 4.71)\n\t(envelope-from <kwolf@redhat.com>) id 1dp9pT-00086W-GY\n\tfor qemu-devel@nongnu.org; Tue, 05 Sep 2017 05:07:36 -0400","from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)\n\t(envelope-from <kwolf@redhat.com>) id 1dp9pJ-0007le-Uk\n\tfor qemu-devel@nongnu.org; Tue, 05 Sep 2017 05:07:31 -0400","from mx1.redhat.com ([209.132.183.28]:39724)\n\tby eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32)\n\t(Exim 4.71) (envelope-from <kwolf@redhat.com>)\n\tid 1dp9p2-0007gr-4w; Tue, 05 Sep 2017 05:07:04 -0400","from smtp.corp.redhat.com\n\t(int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11])\n\t(using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits))\n\t(No client certificate requested)\n\tby mx1.redhat.com (Postfix) with ESMTPS id 1139EA8A6;\n\tTue,  5 Sep 2017 09:07:03 +0000 (UTC)","from localhost.localdomain (ovpn-117-102.ams2.redhat.com\n\t[10.36.117.102])\n\tby smtp.corp.redhat.com (Postfix) with ESMTPS id 39F42CDBCD;\n\tTue,  5 Sep 2017 09:06:57 +0000 (UTC)"],"DMARC-Filter":"OpenDMARC Filter v1.3.2 mx1.redhat.com 1139EA8A6","Date":"Tue, 5 Sep 2017 11:06:55 +0200","From":"Kevin Wolf <kwolf@redhat.com>","To":"Fam Zheng <famz@redhat.com>","Message-ID":"<20170905090655.GC4633@localhost.localdomain>","References":"<20170830100605.22694-1-famz@redhat.com>\n\t<20170905084431.GA4633@localhost.localdomain>\n\t<20170905085441.GU22515@lemon.lan>","MIME-Version":"1.0","Content-Type":"text/plain; charset=us-ascii","Content-Disposition":"inline","In-Reply-To":"<20170905085441.GU22515@lemon.lan>","User-Agent":"Mutt/1.8.3 (2017-05-23)","X-Scanned-By":"MIMEDefang 2.79 on 10.5.11.11","X-Greylist":"Sender IP whitelisted, not delayed by milter-greylist-4.5.16\n\t(mx1.redhat.com [10.5.110.29]);\n\tTue, 05 Sep 2017 09:07:03 +0000 (UTC)","X-detected-operating-system":"by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic]\n\t[fuzzy]","X-Received-From":"209.132.183.28","Subject":"Re: [Qemu-devel] [PATCH] block: Cleanup BMDS in bdrv_close_all","X-BeenThere":"qemu-devel@nongnu.org","X-Mailman-Version":"2.1.21","Precedence":"list","List-Id":"<qemu-devel.nongnu.org>","List-Unsubscribe":"<https://lists.nongnu.org/mailman/options/qemu-devel>,\n\t<mailto:qemu-devel-request@nongnu.org?subject=unsubscribe>","List-Archive":"<http://lists.nongnu.org/archive/html/qemu-devel/>","List-Post":"<mailto:qemu-devel@nongnu.org>","List-Help":"<mailto:qemu-devel-request@nongnu.org?subject=help>","List-Subscribe":"<https://lists.nongnu.org/mailman/listinfo/qemu-devel>,\n\t<mailto:qemu-devel-request@nongnu.org?subject=subscribe>","Cc":"qemu-block@nongnu.org, Juan Quintela <quintela@redhat.com>,\n\tqemu-devel@nongnu.org, qemu-stable@nongnu.org, peterx@redhat.com,\n\tMax Reitz <mreitz@redhat.com>,\n\t\"Dr. David Alan Gilbert\" <dgilbert@redhat.com>","Errors-To":"qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org","Sender":"\"Qemu-devel\"\n\t<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>"}},{"id":1763173,"web_url":"http://patchwork.ozlabs.org/comment/1763173/","msgid":"<87h8whh354.fsf@secure.laptop>","list_archive_url":null,"date":"2017-09-05T10:05:11","subject":"Re: [Qemu-devel] [PATCH] block: Cleanup BMDS in bdrv_close_all","submitter":{"id":2643,"url":"http://patchwork.ozlabs.org/api/people/2643/","name":"Juan Quintela","email":"quintela@redhat.com"},"content":"Kevin Wolf <kwolf@redhat.com> wrote:\n> Am 05.09.2017 um 10:54 hat Fam Zheng geschrieben:\n>> On Tue, 09/05 10:44, Kevin Wolf wrote:\n>> > Am 30.08.2017 um 12:06 hat Fam Zheng geschrieben:\n>> > > This fixes the assertion due to op blockers added by BMDS:\n>> > > \n>> > > block.c:3248: bdrv_delete: Assertion `bdrv_op_blocker_is_empty(bs)' failed.\n>> > > \n>> > > Reproducer: simply start block migration and quit QEMU before it ends.\n>> > > \n>> > > Cc: qemu-stable@nongnu.org\n>> > > Signed-off-by: Fam Zheng <famz@redhat.com>\n>> > > ---\n>> > >  block.c                 | 2 ++\n>> > >  migration/block.c       | 2 +-\n>> > >  migration/block.h       | 1 +\n>> > >  stubs/Makefile.objs     | 1 +\n>> > >  stubs/block-migration.c | 6 ++++++\n>> > >  5 files changed, 11 insertions(+), 1 deletion(-)\n>> > >  create mode 100644 stubs/block-migration.c\n>> > > \n>> > > diff --git a/block.c b/block.c\n>> > > index 3308814bba..508a57274d 100644\n>> > > --- a/block.c\n>> > > +++ b/block.c\n>> > > @@ -43,6 +43,7 @@\n>> > >  #include \"qemu/cutils.h\"\n>> > >  #include \"qemu/id.h\"\n>> > >  #include \"qapi/util.h\"\n>> > > +#include \"migration/block.h\"\n>> > >  \n>> > >  #ifdef CONFIG_BSD\n>> > >  #include <sys/ioctl.h>\n>> > > @@ -3111,6 +3112,7 @@ static void bdrv_close(BlockDriverState *bs)\n>> > >  \n>> > >  void bdrv_close_all(void)\n>> > >  {\n>> > > +    block_migration_cleanup_bmds();\n>> > >      block_job_cancel_sync_all();\n>> > >      nbd_export_close_all();\n>> > \n>> > This is before bdrv_drain_all(). Can't we still have a block migration\n>> > request in flight, whose callback will then dereference a stale pointer?\n>> \n>> You're right, bdrv_drain_all should be called first.\n>\n> Actually, looking a bit closer, what prevents the migration thread from\n> starting new requests even after bdrv_drain_all()? Maybe what we really\n> need to do is cancelling the migration before calling bdrv_close_all().\n\nI was wondering *where* to put this call inside the migration cleanup\ncode, but I got to the conclusion that I was not sure that the migration\ncancellation code got called when you just do a \"quit\".\n\nLater, Juan.","headers":{"Return-Path":"<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>","X-Original-To":"incoming@patchwork.ozlabs.org","Delivered-To":"patchwork-incoming@bilbo.ozlabs.org","Authentication-Results":["ozlabs.org;\n\tspf=pass (mailfrom) smtp.mailfrom=nongnu.org\n\t(client-ip=2001:4830:134:3::11; helo=lists.gnu.org;\n\tenvelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org;\n\treceiver=<UNKNOWN>)","ext-mx03.extmail.prod.ext.phx2.redhat.com;\n\tdmarc=none (p=none dis=none) header.from=redhat.com","ext-mx03.extmail.prod.ext.phx2.redhat.com;\n\tspf=fail smtp.mailfrom=quintela@redhat.com"],"Received":["from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11])\n\t(using TLSv1 with cipher AES256-SHA (256/256 bits))\n\t(No client certificate requested)\n\tby ozlabs.org (Postfix) with ESMTPS id 3xmj7q73drz9s9Y\n\tfor <incoming@patchwork.ozlabs.org>;\n\tTue,  5 Sep 2017 20:07:35 +1000 (AEST)","from localhost ([::1]:57882 helo=lists.gnu.org)\n\tby lists.gnu.org with esmtp (Exim 4.71) (envelope-from\n\t<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>)\n\tid 1dpAlZ-0003Lb-O0\n\tfor incoming@patchwork.ozlabs.org; Tue, 05 Sep 2017 06:07:33 -0400","from eggs.gnu.org ([2001:4830:134:3::10]:39899)\n\tby lists.gnu.org with esmtp (Exim 4.71)\n\t(envelope-from <quintela@redhat.com>) id 1dpAjp-0002SC-Fp\n\tfor qemu-devel@nongnu.org; Tue, 05 Sep 2017 06:05:50 -0400","from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)\n\t(envelope-from <quintela@redhat.com>) id 1dpAjh-0003ZM-L9\n\tfor qemu-devel@nongnu.org; Tue, 05 Sep 2017 06:05:45 -0400","from mx1.redhat.com ([209.132.183.28]:34754)\n\tby eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32)\n\t(Exim 4.71) (envelope-from <quintela@redhat.com>)\n\tid 1dpAjO-0003Is-Nd; Tue, 05 Sep 2017 06:05:18 -0400","from smtp.corp.redhat.com\n\t(int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13])\n\t(using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits))\n\t(No client certificate requested)\n\tby mx1.redhat.com (Postfix) with ESMTPS id 1A6AE7E421;\n\tTue,  5 Sep 2017 10:05:17 +0000 (UTC)","from localhost (ovpn-116-104.ams2.redhat.com [10.36.116.104])\n\tby smtp.corp.redhat.com (Postfix) with ESMTP id 241E46E529;\n\tTue,  5 Sep 2017 10:05:11 +0000 (UTC)"],"DMARC-Filter":"OpenDMARC Filter v1.3.2 mx1.redhat.com 1A6AE7E421","From":"Juan Quintela <quintela@redhat.com>","To":"Kevin Wolf <kwolf@redhat.com>","In-Reply-To":"<20170905090655.GC4633@localhost.localdomain> (Kevin Wolf's\n\tmessage of \"Tue, 5 Sep 2017 11:06:55 +0200\")","References":"<20170830100605.22694-1-famz@redhat.com>\n\t<20170905084431.GA4633@localhost.localdomain>\n\t<20170905085441.GU22515@lemon.lan>\n\t<20170905090655.GC4633@localhost.localdomain>","User-Agent":"Gnus/5.13 (Gnus v5.13) Emacs/25.2 (gnu/linux)","Date":"Tue, 05 Sep 2017 12:05:11 +0200","Message-ID":"<87h8whh354.fsf@secure.laptop>","MIME-Version":"1.0","Content-Type":"text/plain","X-Scanned-By":"MIMEDefang 2.79 on 10.5.11.13","X-Greylist":"Sender IP whitelisted, not delayed by milter-greylist-4.5.16\n\t(mx1.redhat.com [10.5.110.27]);\n\tTue, 05 Sep 2017 10:05:17 +0000 (UTC)","X-detected-operating-system":"by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic]\n\t[fuzzy]","X-Received-From":"209.132.183.28","Subject":"Re: [Qemu-devel] [PATCH] block: Cleanup BMDS in bdrv_close_all","X-BeenThere":"qemu-devel@nongnu.org","X-Mailman-Version":"2.1.21","Precedence":"list","List-Id":"<qemu-devel.nongnu.org>","List-Unsubscribe":"<https://lists.nongnu.org/mailman/options/qemu-devel>,\n\t<mailto:qemu-devel-request@nongnu.org?subject=unsubscribe>","List-Archive":"<http://lists.nongnu.org/archive/html/qemu-devel/>","List-Post":"<mailto:qemu-devel@nongnu.org>","List-Help":"<mailto:qemu-devel-request@nongnu.org?subject=help>","List-Subscribe":"<https://lists.nongnu.org/mailman/listinfo/qemu-devel>,\n\t<mailto:qemu-devel-request@nongnu.org?subject=subscribe>","Reply-To":"quintela@redhat.com","Cc":"Fam Zheng <famz@redhat.com>, qemu-block@nongnu.org,\n\tqemu-stable@nongnu.org, qemu-devel@nongnu.org, peterx@redhat.com,\n\tMax Reitz <mreitz@redhat.com>, \n\t\"Dr. David Alan Gilbert\" <dgilbert@redhat.com>","Errors-To":"qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org","Sender":"\"Qemu-devel\"\n\t<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>"}},{"id":1763186,"web_url":"http://patchwork.ozlabs.org/comment/1763186/","msgid":"<20170905102844.GJ17449@stefanha-x1.localdomain>","list_archive_url":null,"date":"2017-09-05T10:28:44","subject":"Re: [Qemu-devel] [Qemu-block] [PATCH] block: Cleanup BMDS in\n\tbdrv_close_all","submitter":{"id":2747,"url":"http://patchwork.ozlabs.org/api/people/2747/","name":"Stefan Hajnoczi","email":"stefanha@gmail.com"},"content":"On Wed, Aug 30, 2017 at 06:06:05PM +0800, Fam Zheng wrote:\n> This fixes the assertion due to op blockers added by BMDS:\n> \n> block.c:3248: bdrv_delete: Assertion `bdrv_op_blocker_is_empty(bs)' failed.\n> \n> Reproducer: simply start block migration and quit QEMU before it ends.\n> \n> Cc: qemu-stable@nongnu.org\n> Signed-off-by: Fam Zheng <famz@redhat.com>\n> ---\n>  block.c                 | 2 ++\n>  migration/block.c       | 2 +-\n>  migration/block.h       | 1 +\n>  stubs/Makefile.objs     | 1 +\n>  stubs/block-migration.c | 6 ++++++\n>  5 files changed, 11 insertions(+), 1 deletion(-)\n>  create mode 100644 stubs/block-migration.c\n\nThanks, applied to my block tree:\nhttps://github.com/stefanha/qemu/commits/block\n\nStefan","headers":{"Return-Path":"<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>","X-Original-To":"incoming@patchwork.ozlabs.org","Delivered-To":"patchwork-incoming@bilbo.ozlabs.org","Authentication-Results":["ozlabs.org;\n\tspf=pass (mailfrom) smtp.mailfrom=nongnu.org\n\t(client-ip=2001:4830:134:3::11; helo=lists.gnu.org;\n\tenvelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org;\n\treceiver=<UNKNOWN>)","ozlabs.org;\n\tdkim=fail reason=\"signature verification failed\" (2048-bit key;\n\tunprotected) header.d=gmail.com header.i=@gmail.com\n\theader.b=\"jh8Zrlmp\"; dkim-atps=neutral"],"Received":["from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11])\n\t(using TLSv1 with cipher AES256-SHA (256/256 bits))\n\t(No client certificate requested)\n\tby ozlabs.org (Postfix) with ESMTPS id 3xmjct1w2Fz9s4q\n\tfor <incoming@patchwork.ozlabs.org>;\n\tTue,  5 Sep 2017 20:29:18 +1000 (AEST)","from localhost ([::1]:57981 helo=lists.gnu.org)\n\tby lists.gnu.org with esmtp (Exim 4.71) (envelope-from\n\t<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>)\n\tid 1dpB6a-0004c6-DT\n\tfor incoming@patchwork.ozlabs.org; Tue, 05 Sep 2017 06:29:16 -0400","from eggs.gnu.org ([2001:4830:134:3::10]:51454)\n\tby lists.gnu.org with esmtp (Exim 4.71)\n\t(envelope-from <stefanha@gmail.com>) id 1dpB6C-0004aK-5z\n\tfor qemu-devel@nongnu.org; Tue, 05 Sep 2017 06:28:56 -0400","from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)\n\t(envelope-from <stefanha@gmail.com>) id 1dpB67-0007gL-I7\n\tfor qemu-devel@nongnu.org; Tue, 05 Sep 2017 06:28:52 -0400","from mail-wm0-x232.google.com ([2a00:1450:400c:c09::232]:35935)\n\tby eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16)\n\t(Exim 4.71) (envelope-from <stefanha@gmail.com>)\n\tid 1dpB67-0007fL-CB; Tue, 05 Sep 2017 06:28:47 -0400","by mail-wm0-x232.google.com with SMTP id i145so17146583wmf.1;\n\tTue, 05 Sep 2017 03:28:47 -0700 (PDT)","from localhost ([51.15.41.238]) by smtp.gmail.com with ESMTPSA id\n\tl42sm107882eda.65.2017.09.05.03.28.45\n\t(version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256);\n\tTue, 05 Sep 2017 03:28:45 -0700 (PDT)"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;\n\th=date:from:to:cc:subject:message-id:references:mime-version\n\t:content-disposition:in-reply-to:user-agent;\n\tbh=+rD/Lzdh6A5xNqcO2D/BiT2mOezx7pawBV+2CrQcMic=;\n\tb=jh8ZrlmpFxl2Tp9Lteb5I0erlkIXKkGRZdcoc9k3NqDeL/M1WLB0hG9f0zoCKwIHF2\n\tb7iHmFTkPNsPEusA4Xb+hurq+Ry83q24EtVie+H+RivnSfg2KBYGdLbDKmMvbLOsnIMJ\n\tw+yynNOxxG1WoUlOPdFlvqAaeUz2/Y7RrxfLDu0631WRizX+tFseJXQZQ//gYZdycLlY\n\tHUjI/ChxejF8q6+NQeeGVc1dWjiNtY+dCSnJN7I9o2eHTM1W07RVetGyK/aKYFOxYMBo\n\tdubDQiZi2UDxyejBYcE5BddIQEubpFu66cni2NSMP5rGOT62SzFMLTyVZOrXxg5DbJde\n\thslA==","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20161025;\n\th=x-gm-message-state:date:from:to:cc:subject:message-id:references\n\t:mime-version:content-disposition:in-reply-to:user-agent;\n\tbh=+rD/Lzdh6A5xNqcO2D/BiT2mOezx7pawBV+2CrQcMic=;\n\tb=jba1JYBPsIuLj8bW/JtgPNbdl9K4VEolB3RRiiOKyjpkndA3+mQ/dH0WPAV25zeYCA\n\tqzQveQNX7AfpVHR07lnq0tiunqPlmgM+ODLyDaG4YOlGZJzh+naK7+AE4ggKke2LH/TU\n\tO2W9uMqXr4ZaGs5HJmAsFwGj+ph6iUflSieoFCtx87ws3zkkgYxvvDJWGaom2KbVlM3Q\n\tK0/gSY2rYXGEJLg3G8kAu4VcVxR26MuTPVb/J2H80i5Fcy2vwNhcw00QLabvbmLhURbA\n\t4Zdxqk9vPLBF4kztV8C5cWv1WW2rZ7ZGai/1N6kVO4F1DM+0CekUKkNjD0QkLYk1tT9H\n\tzd/Q==","X-Gm-Message-State":"AHPjjUid2ckC4f80LyZCZJpME8Xsc+brQVtfZ0u/0kEX6XksiMo9GAco\n\toO6foQ7MHwOahA==","X-Google-Smtp-Source":"ADKCNb7kBOrj2GgywirX1JBl8Pa0BEE6y+IGZfQqBquBqtqKDcctojSuwsVVFJAVSHYcxCHlK3BvVA==","X-Received":"by 10.80.217.71 with SMTP id u7mr2886147edj.212.1504607326016;\n\tTue, 05 Sep 2017 03:28:46 -0700 (PDT)","Date":"Tue, 5 Sep 2017 11:28:44 +0100","From":"Stefan Hajnoczi <stefanha@gmail.com>","To":"Fam Zheng <famz@redhat.com>","Message-ID":"<20170905102844.GJ17449@stefanha-x1.localdomain>","References":"<20170830100605.22694-1-famz@redhat.com>","MIME-Version":"1.0","Content-Type":"text/plain; charset=us-ascii","Content-Disposition":"inline","In-Reply-To":"<20170830100605.22694-1-famz@redhat.com>","User-Agent":"Mutt/1.8.3 (2017-05-23)","X-detected-operating-system":"by eggs.gnu.org: Genre and OS details not\n\trecognized.","X-Received-From":"2a00:1450:400c:c09::232","Subject":"Re: [Qemu-devel] [Qemu-block] [PATCH] block: Cleanup BMDS in\n\tbdrv_close_all","X-BeenThere":"qemu-devel@nongnu.org","X-Mailman-Version":"2.1.21","Precedence":"list","List-Id":"<qemu-devel.nongnu.org>","List-Unsubscribe":"<https://lists.nongnu.org/mailman/options/qemu-devel>,\n\t<mailto:qemu-devel-request@nongnu.org?subject=unsubscribe>","List-Archive":"<http://lists.nongnu.org/archive/html/qemu-devel/>","List-Post":"<mailto:qemu-devel@nongnu.org>","List-Help":"<mailto:qemu-devel-request@nongnu.org?subject=help>","List-Subscribe":"<https://lists.nongnu.org/mailman/listinfo/qemu-devel>,\n\t<mailto:qemu-devel-request@nongnu.org?subject=subscribe>","Cc":"Kevin Wolf <kwolf@redhat.com>, qemu-block@nongnu.org,\n\tJuan Quintela <quintela@redhat.com>, qemu-stable@nongnu.org,\n\tpeterx@redhat.com, qemu-devel@nongnu.org, Max Reitz <mreitz@redhat.com>, \n\t\"Dr. David Alan Gilbert\" <dgilbert@redhat.com>","Errors-To":"qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org","Sender":"\"Qemu-devel\"\n\t<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>"}},{"id":1763203,"web_url":"http://patchwork.ozlabs.org/comment/1763203/","msgid":"<20170905104723.GA28694@stefanha-x1.localdomain>","list_archive_url":null,"date":"2017-09-05T10:47:23","subject":"Re: [Qemu-devel] [Qemu-block] [PATCH] block: Cleanup BMDS in\n\tbdrv_close_all","submitter":{"id":2747,"url":"http://patchwork.ozlabs.org/api/people/2747/","name":"Stefan Hajnoczi","email":"stefanha@gmail.com"},"content":"On Tue, Sep 05, 2017 at 11:28:44AM +0100, Stefan Hajnoczi wrote:\n> On Wed, Aug 30, 2017 at 06:06:05PM +0800, Fam Zheng wrote:\n> > This fixes the assertion due to op blockers added by BMDS:\n> > \n> > block.c:3248: bdrv_delete: Assertion `bdrv_op_blocker_is_empty(bs)' failed.\n> > \n> > Reproducer: simply start block migration and quit QEMU before it ends.\n> > \n> > Cc: qemu-stable@nongnu.org\n> > Signed-off-by: Fam Zheng <famz@redhat.com>\n> > ---\n> >  block.c                 | 2 ++\n> >  migration/block.c       | 2 +-\n> >  migration/block.h       | 1 +\n> >  stubs/Makefile.objs     | 1 +\n> >  stubs/block-migration.c | 6 ++++++\n> >  5 files changed, 11 insertions(+), 1 deletion(-)\n> >  create mode 100644 stubs/block-migration.c\n> \n> Thanks, applied to my block tree:\n> https://github.com/stefanha/qemu/commits/block\n\nDropped again pending the issue Kevin raised.\n\nStefan","headers":{"Return-Path":"<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>","X-Original-To":"incoming@patchwork.ozlabs.org","Delivered-To":"patchwork-incoming@bilbo.ozlabs.org","Authentication-Results":["ozlabs.org;\n\tspf=pass (mailfrom) smtp.mailfrom=nongnu.org\n\t(client-ip=2001:4830:134:3::11; helo=lists.gnu.org;\n\tenvelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org;\n\treceiver=<UNKNOWN>)","ozlabs.org;\n\tdkim=fail reason=\"signature verification failed\" (2048-bit key;\n\tunprotected) header.d=gmail.com header.i=@gmail.com\n\theader.b=\"c1vTGNGw\"; dkim-atps=neutral"],"Received":["from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11])\n\t(using TLSv1 with cipher AES256-SHA (256/256 bits))\n\t(No client certificate requested)\n\tby ozlabs.org (Postfix) with ESMTPS id 3xmk2g0kVFz9sP3\n\tfor <incoming@patchwork.ozlabs.org>;\n\tTue,  5 Sep 2017 20:48:02 +1000 (AEST)","from localhost ([::1]:58055 helo=lists.gnu.org)\n\tby lists.gnu.org with esmtp (Exim 4.71) (envelope-from\n\t<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>)\n\tid 1dpBOi-00047V-6m\n\tfor incoming@patchwork.ozlabs.org; Tue, 05 Sep 2017 06:48:00 -0400","from eggs.gnu.org ([2001:4830:134:3::10]:33354)\n\tby lists.gnu.org with esmtp (Exim 4.71)\n\t(envelope-from <stefanha@gmail.com>) id 1dpBOF-000470-J4\n\tfor qemu-devel@nongnu.org; Tue, 05 Sep 2017 06:47:36 -0400","from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)\n\t(envelope-from <stefanha@gmail.com>) id 1dpBOA-0003V7-Q3\n\tfor qemu-devel@nongnu.org; Tue, 05 Sep 2017 06:47:31 -0400","from mail-wm0-x243.google.com ([2a00:1450:400c:c09::243]:36472)\n\tby eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16)\n\t(Exim 4.71) (envelope-from <stefanha@gmail.com>)\n\tid 1dpBOA-0003Uu-I7; Tue, 05 Sep 2017 06:47:26 -0400","by mail-wm0-x243.google.com with SMTP id p17so2622941wmd.3;\n\tTue, 05 Sep 2017 03:47:26 -0700 (PDT)","from localhost ([51.15.41.238]) by smtp.gmail.com with ESMTPSA id\n\ti93sm99509edc.53.2017.09.05.03.47.24\n\t(version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256);\n\tTue, 05 Sep 2017 03:47:24 -0700 (PDT)"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;\n\th=date:from:to:cc:subject:message-id:references:mime-version\n\t:content-disposition:in-reply-to:user-agent;\n\tbh=HwSMGqfnK/upCQLX3WVsPguoSUnTIMFDE4a15dFT4Xs=;\n\tb=c1vTGNGwH6kczbiwSc7WF34qgbBx4Rwa/sdV7SJX+HjEAlQuPDJzV5VMuHox623MMm\n\tItc5tzQdnQ70csHCnapmSh+STNOQQB9UNtX85buik9QqzVf3LB4K27fSjRA3luUB8qVZ\n\tu3eDQVI0TvInGHzha4OaQ89mIGseJvZ9PLLgrPane3XHPE7iuOwc0swGs6AmwDmh1i3U\n\tNOfUk0oC2cdWVekzvrF5+aeNyBDQnPy0XKUmif+EQnx7ppKkO4hgHGQhx6PKN09Aybj7\n\tqNMkuKI7DU7uH+XuUwPOEE/34uwbhdcF6/vwlmZKUTTNB5ZzpMZ7on/0a4Xv+1+DDJr4\n\t3qUQ==","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20161025;\n\th=x-gm-message-state:date:from:to:cc:subject:message-id:references\n\t:mime-version:content-disposition:in-reply-to:user-agent;\n\tbh=HwSMGqfnK/upCQLX3WVsPguoSUnTIMFDE4a15dFT4Xs=;\n\tb=an/Gva0ymddWaVHM1go52i4tArje8yDL8Eo/hc3eCSMdUeAa5k1fHfsBr3Djl1hWpD\n\tbZgtVDl3WW5xsLKoGSc9MLjOVngaKNRJSmknPHaxIUfYx6rgmMZDQKSBKSL3Y67hIg3H\n\tnjjAuV/bpofKepFvTmyAu0P8lgFRcKWdjLtDNi758hpclBXgm1ZeR5X7t0He6oW1NTry\n\tUg9pWkcsUpllcdpHj1BW1zJRS9Hsrnkx/uuhmg5xZVIKtoOGuUcRb6rhc2IAyKxGeZ8y\n\tocQwCj4g0nlEIJldmhNOizZFBFdBByUO1znGzl27JdqS7njuFX8BmmH2Fco+hBWF/zpR\n\tKlDA==","X-Gm-Message-State":"AHPjjUh3Qf666qQdrUShCPF1ENSNqIXVYzBMZ+DTUofqvwdZpVRldRpf\n\tgNpcSUzoi36iLHcfX7U=","X-Google-Smtp-Source":"ADKCNb4MmvhODOOB2t/VNcb9EELcFuGiLXlSZtq41WUtHGyj57xki5PzybaT7Aod1Mm7/Q2QUZUk5g==","X-Received":"by 10.80.213.9 with SMTP id u9mr2842479edi.87.1504608445439;\n\tTue, 05 Sep 2017 03:47:25 -0700 (PDT)","Date":"Tue, 5 Sep 2017 11:47:23 +0100","From":"Stefan Hajnoczi <stefanha@gmail.com>","To":"Fam Zheng <famz@redhat.com>","Message-ID":"<20170905104723.GA28694@stefanha-x1.localdomain>","References":"<20170830100605.22694-1-famz@redhat.com>\n\t<20170905102844.GJ17449@stefanha-x1.localdomain>","MIME-Version":"1.0","Content-Type":"text/plain; charset=us-ascii","Content-Disposition":"inline","In-Reply-To":"<20170905102844.GJ17449@stefanha-x1.localdomain>","User-Agent":"Mutt/1.8.3 (2017-05-23)","X-detected-operating-system":"by eggs.gnu.org: Genre and OS details not\n\trecognized.","X-Received-From":"2a00:1450:400c:c09::243","Subject":"Re: [Qemu-devel] [Qemu-block] [PATCH] block: Cleanup BMDS in\n\tbdrv_close_all","X-BeenThere":"qemu-devel@nongnu.org","X-Mailman-Version":"2.1.21","Precedence":"list","List-Id":"<qemu-devel.nongnu.org>","List-Unsubscribe":"<https://lists.nongnu.org/mailman/options/qemu-devel>,\n\t<mailto:qemu-devel-request@nongnu.org?subject=unsubscribe>","List-Archive":"<http://lists.nongnu.org/archive/html/qemu-devel/>","List-Post":"<mailto:qemu-devel@nongnu.org>","List-Help":"<mailto:qemu-devel-request@nongnu.org?subject=help>","List-Subscribe":"<https://lists.nongnu.org/mailman/listinfo/qemu-devel>,\n\t<mailto:qemu-devel-request@nongnu.org?subject=subscribe>","Cc":"Kevin Wolf <kwolf@redhat.com>, qemu-block@nongnu.org,\n\tJuan Quintela <quintela@redhat.com>, qemu-stable@nongnu.org,\n\tpeterx@redhat.com, qemu-devel@nongnu.org, Max Reitz <mreitz@redhat.com>, \n\t\"Dr. David Alan Gilbert\" <dgilbert@redhat.com>","Errors-To":"qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org","Sender":"\"Qemu-devel\"\n\t<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>"}}]