From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:54264) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZHF9z-0005fo-VN for qemu-devel@nongnu.org; Mon, 20 Jul 2015 13:47:28 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZHF9u-0001Dt-W1 for qemu-devel@nongnu.org; Mon, 20 Jul 2015 13:47:27 -0400 From: Max Reitz Date: Mon, 20 Jul 2015 19:45:44 +0200 Message-Id: <1437414365-11881-18-git-send-email-mreitz@redhat.com> In-Reply-To: <1437414365-11881-1-git-send-email-mreitz@redhat.com> References: <1437414365-11881-1-git-send-email-mreitz@redhat.com> Subject: [Qemu-devel] [PATCH v4 17/38] block: Make some BB functions fall back to BBRS List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-block@nongnu.org Cc: Kevin Wolf , Alberto Garcia , John Snow , qemu-devel@nongnu.org, Markus Armbruster , Stefan Hajnoczi , Max Reitz If there is no BDS tree attached to a BlockBackend, functions that can do so should fall back to the BlockBackendRootState structure (which are blk_is_read_only() and blk_get_flags(), because the read-only status and the "open flags" are part of the BBRS). Signed-off-by: Max Reitz Reviewed-by: Eric Blake --- block/block-backend.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/block/block-backend.c b/block/block-backend.c index b4a158d..6afe200 100644 --- a/block/block-backend.c +++ b/block/block-backend.c @@ -852,7 +852,11 @@ void blk_error_action(BlockBackend *blk, BlockErrorAction action, int blk_is_read_only(BlockBackend *blk) { - return bdrv_is_read_only(blk->bs); + if (blk->bs) { + return bdrv_is_read_only(blk->bs); + } else { + return blk->root_state.read_only; + } } int blk_is_sg(BlockBackend *blk) @@ -897,7 +901,11 @@ void blk_eject(BlockBackend *blk, bool eject_flag) int blk_get_flags(BlockBackend *blk) { - return bdrv_get_flags(blk->bs); + if (blk->bs) { + return bdrv_get_flags(blk->bs); + } else { + return blk->root_state.open_flags; + } } int blk_get_max_transfer_length(BlockBackend *blk) -- 2.4.6