qemu-devel
[Top][All Lists]
Advanced

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

[Qemu-devel] [PATCH 07/50] block: Make bdrv_is_inserted() recursive


From: Max Reitz
Subject: [Qemu-devel] [PATCH 07/50] block: Make bdrv_is_inserted() recursive
Date: Mon, 26 Jan 2015 11:02:41 -0500

If bdrv_is_inserted() is called on the top level BDS, it should make
sure all nodes in the BDS tree are actually inserted.

Signed-off-by: Max Reitz <address@hidden>
---
 block.c | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/block.c b/block.c
index 4a5f8fc..aff7682 100644
--- a/block.c
+++ b/block.c
@@ -5208,11 +5208,12 @@ int bdrv_is_inserted(BlockDriverState *bs)
 {
     BlockDriver *drv = bs->drv;
 
-    if (!drv)
+    if (!drv) {
         return 0;
-    if (!drv->bdrv_is_inserted)
-        return 1;
-    return drv->bdrv_is_inserted(bs);
+    }
+    return (!drv->bdrv_is_inserted || drv->bdrv_is_inserted(bs)) &&
+           (!bs->file              || bdrv_is_inserted(bs->file)) &&
+           (!bs->backing_hd        || bdrv_is_inserted(bs->backing_hd));
 }
 
 /**
-- 
2.1.0




reply via email to

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