OSDN Git Service

block: Don't let locked flag prevent medium load
authorMarkus Armbruster <armbru@redhat.com>
Wed, 20 Jul 2011 16:23:43 +0000 (18:23 +0200)
committerKevin Wolf <kwolf@redhat.com>
Mon, 1 Aug 2011 10:10:28 +0000 (12:10 +0200)
Commit aea2a33c made bdrv_eject() obey the locked flag.  Correct for
medium eject (eject_flag set), incorrect for medium load (eject_flag
clear).  See MMC-5 Table 341 "Actions for Lock/Unlock/Eject".

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
block.c

diff --git a/block.c b/block.c
index 7c25fe4..8859f9b 100644 (file)
--- a/block.c
+++ b/block.c
@@ -2771,7 +2771,7 @@ int bdrv_eject(BlockDriverState *bs, int eject_flag)
 {
     BlockDriver *drv = bs->drv;
 
-    if (bs->locked) {
+    if (eject_flag && bs->locked) {
         return -EBUSY;
     }