OSDN Git Service

block: prepare code for adding block notifiers
authorPaolo Bonzini <pbonzini@redhat.com>
Fri, 19 Oct 2012 09:36:48 +0000 (11:36 +0200)
committerPaolo Bonzini <pbonzini@redhat.com>
Tue, 23 Oct 2012 20:39:32 +0000 (22:39 +0200)
There is no reason in principle to skip job cancellation and draining
of pending I/O when there is no medium in the disk.  Do these unconditionally,
which also prepares the code for the next patch.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
block.c

diff --git a/block.c b/block.c
index e95f613..2e4ddea 100644 (file)
--- a/block.c
+++ b/block.c
@@ -1098,12 +1098,12 @@ void bdrv_reopen_abort(BDRVReopenState *reopen_state)
 void bdrv_close(BlockDriverState *bs)
 {
     bdrv_flush(bs);
-    if (bs->drv) {
-        if (bs->job) {
-            block_job_cancel_sync(bs->job);
-        }
-        bdrv_drain_all();
+    if (bs->job) {
+        block_job_cancel_sync(bs->job);
+    }
+    bdrv_drain_all();
 
+    if (bs->drv) {
         if (bs == bs_snapshots) {
             bs_snapshots = NULL;
         }