From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:60939) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YKrsF-0002wm-5S for qemu-devel@nongnu.org; Mon, 09 Feb 2015 12:11:59 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1YKrsD-00065c-M5 for qemu-devel@nongnu.org; Mon, 09 Feb 2015 12:11:51 -0500 Received: from mx1.redhat.com ([209.132.183.28]:37832) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YKrsD-00065H-Er for qemu-devel@nongnu.org; Mon, 09 Feb 2015 12:11:49 -0500 Received: from int-mx10.intmail.prod.int.phx2.redhat.com (int-mx10.intmail.prod.int.phx2.redhat.com [10.5.11.23]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id t19HBnLE015950 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=FAIL) for ; Mon, 9 Feb 2015 12:11:49 -0500 From: Max Reitz Date: Mon, 9 Feb 2015 12:11:09 -0500 Message-Id: <1423501897-30410-10-git-send-email-mreitz@redhat.com> In-Reply-To: <1423501897-30410-1-git-send-email-mreitz@redhat.com> References: <1423501897-30410-1-git-send-email-mreitz@redhat.com> Subject: [Qemu-devel] [PATCH v2 09/37] block/quorum: Implement bdrv_is_inserted() List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: Kevin Wolf , Markus Armbruster , Max Reitz , Stefan Hajnoczi , John Snow bdrv_is_inserted() should be invoked recursively on the children of quorum. Signed-off-by: Max Reitz Reviewed-by: Eric Blake --- block/quorum.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/block/quorum.c b/block/quorum.c index 437b122..7a75cea 100644 --- a/block/quorum.c +++ b/block/quorum.c @@ -1064,6 +1064,20 @@ static void quorum_refresh_filename(BlockDriverState *bs) bs->full_open_options = opts; } +static bool quorum_is_inserted(BlockDriverState *bs) +{ + BDRVQuorumState *s = bs->opaque; + int i; + + for (i = 0; i < s->num_children; i++) { + if (!bdrv_is_inserted(s->bs[i])) { + return false; + } + } + + return true; +} + static BlockDriver bdrv_quorum = { .format_name = "quorum", .protocol_name = "quorum", @@ -1087,6 +1101,8 @@ static BlockDriver bdrv_quorum = { .is_filter = true, .bdrv_recurse_is_first_non_filter = quorum_recurse_is_first_non_filter, + + .bdrv_is_inserted = quorum_is_inserted, }; static void bdrv_quorum_init(void) -- 2.1.0