diff options
author | Max Reitz <mreitz@redhat.com> | 2015-10-19 17:53:12 +0200 |
---|---|---|
committer | Kevin Wolf <kwolf@redhat.com> | 2015-10-23 18:18:22 +0200 |
commit | db0284f86a31ec66d138f0f7794321c306af969e (patch) | |
tree | 41bef170c6daa645b59b37f77334e77f9479ccdb | |
parent | e031f750483377a5e5de4c92af68dfa68e4d0aae (diff) |
block: Add blk_is_available()
blk_is_available() returns true iff the BDS is inserted (which means
blk_bs() is not NULL and bdrv_is_inserted() returns true) and if the
tray of the guest device is closed.
blk_is_inserted() is changed to return true only if blk_bs() is not
NULL.
Signed-off-by: Max Reitz <mreitz@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Reviewed-by: Alberto Garcia <berto@igalia.com>
Reviewed-by: Kevin Wolf <kwolf@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
-rw-r--r-- | block/block-backend.c | 7 | ||||
-rw-r--r-- | include/sysemu/block-backend.h | 1 |
2 files changed, 7 insertions, 1 deletions
diff --git a/block/block-backend.c b/block/block-backend.c index 1db002c00c..74642dc097 100644 --- a/block/block-backend.c +++ b/block/block-backend.c @@ -771,7 +771,12 @@ void blk_invalidate_cache(BlockBackend *blk, Error **errp) bool blk_is_inserted(BlockBackend *blk) { - return bdrv_is_inserted(blk->bs); + return blk->bs && bdrv_is_inserted(blk->bs); +} + +bool blk_is_available(BlockBackend *blk) +{ + return blk_is_inserted(blk) && !blk_dev_is_tray_open(blk); } void blk_lock_medium(BlockBackend *blk, bool locked) diff --git a/include/sysemu/block-backend.h b/include/sysemu/block-backend.h index 8f2bf10f4d..1e19d1bb79 100644 --- a/include/sysemu/block-backend.h +++ b/include/sysemu/block-backend.h @@ -131,6 +131,7 @@ int blk_enable_write_cache(BlockBackend *blk); void blk_set_enable_write_cache(BlockBackend *blk, bool wce); void blk_invalidate_cache(BlockBackend *blk, Error **errp); bool blk_is_inserted(BlockBackend *blk); +bool blk_is_available(BlockBackend *blk); void blk_lock_medium(BlockBackend *blk, bool locked); void blk_eject(BlockBackend *blk, bool eject_flag); int blk_get_flags(BlockBackend *blk); |