qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH v6 01/18] block: ensure bdrv_drain_all() works d


From: Wenchao Xia
Subject: Re: [Qemu-devel] [PATCH v6 01/18] block: ensure bdrv_drain_all() works during bdrv_delete()
Date: Wed, 07 Aug 2013 10:42:26 +0800
User-agent: Mozilla/5.0 (Windows NT 5.1; rv:17.0) Gecko/20130620 Thunderbird/17.0.7

On Fri, Jul 26, 2013 at 02:43:44PM +0800, Wenchao Xia wrote:
Reviewed-by: Wenchao Xia <address@hidden>

One question: old code missed itself in bdrv_drain_all(), is that a bug?

Sorry, I don't understand the question.  Can you rephrase it?

  Before this patch, in the code path: bdrv_close()->bdrv_drain_all(),
the *bs does not exist in bdrv_states, so the code missed the chance to
drain the request on *bs. That is a bug, and this patch is actually a
bugfix?


In bdrv_delete() make sure to call bdrv_make_anon() *after* bdrv_close()
so that the device is still seen by bdrv_drain_all() when iterating
bdrv_states.

Cc: address@hidden
Signed-off-by: Stefan Hajnoczi <address@hidden>
---
   block.c | 4 ++--
   1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/block.c b/block.c
index 6cd39fa..9d68270 100644
--- a/block.c
+++ b/block.c
@@ -1600,11 +1600,11 @@ void bdrv_delete(BlockDriverState *bs)
       assert(!bs->job);
       assert(!bs->in_use);

+    bdrv_close(bs);
+
       /* remove from list, if necessary */
       bdrv_make_anon(bs);

-    bdrv_close(bs);
-
       g_free(bs);
   }



--
Best Regards

Wenchao Xia





--
Best Regards

Wenchao Xia




reply via email to

[Prev in Thread] Current Thread [Next in Thread]