From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:59144) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dVeA2-0008Vp-Ih for qemu-devel@nongnu.org; Thu, 13 Jul 2017 09:28:07 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dVeA1-0001Nq-N2 for qemu-devel@nongnu.org; Thu, 13 Jul 2017 09:28:06 -0400 From: Markus Armbruster Date: Thu, 13 Jul 2017 15:27:49 +0200 Message-Id: <1499952476-3454-3-git-send-email-armbru@redhat.com> In-Reply-To: <1499952476-3454-1-git-send-email-armbru@redhat.com> References: <1499952476-3454-1-git-send-email-armbru@redhat.com> Subject: [Qemu-devel] [PULL 2/9] block: Don't try to set *errp directly List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: Eduardo Habkost , Kevin Wolf , Max Reitz , qemu-block@nongnu.org From: Eduardo Habkost Assigning directly to *errp is not valid, as errp may be NULL, &error_fatal, or &error_abort. Use error_propagate() instead. With this, there's no need to check if errp is NULL anymore, as error_propagate() and error_prepend() are able to handle that. Cc: Kevin Wolf Cc: Max Reitz Cc: qemu-block@nongnu.org Signed-off-by: Eduardo Habkost Message-Id: <20170608133906.12737-3-ehabkost@redhat.com> Reviewed-by: Alberto Garcia Reviewed-by: Eric Blake Reviewed-by: Markus Armbruster Signed-off-by: Markus Armbruster --- block.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/block.c b/block.c index 6943962..b1599d2 100644 --- a/block.c +++ b/block.c @@ -4267,11 +4267,9 @@ bool bdrv_op_is_blocked(BlockDriverState *bs, BlockOpType op, Error **errp) assert((int) op >= 0 && op < BLOCK_OP_TYPE_MAX); if (!QLIST_EMPTY(&bs->op_blockers[op])) { blocker = QLIST_FIRST(&bs->op_blockers[op]); - if (errp) { - *errp = error_copy(blocker->reason); - error_prepend(errp, "Node '%s' is busy: ", - bdrv_get_device_or_node_name(bs)); - } + error_propagate(errp, error_copy(blocker->reason)); + error_prepend(errp, "Node '%s' is busy: ", + bdrv_get_device_or_node_name(bs)); return true; } return false; -- 2.7.5