From patchwork Fri Mar 4 15:37:25 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Hanna Czenczek X-Patchwork-Id: 12769351 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id AE59BC433EF for ; Fri, 4 Mar 2022 15:39:58 +0000 (UTC) Received: from localhost ([::1]:57948 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nQA29-0001w5-LJ for qemu-devel@archiver.kernel.org; Fri, 04 Mar 2022 10:39:57 -0500 Received: from eggs.gnu.org ([209.51.188.92]:59868) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nQA00-0007XQ-9F for qemu-devel@nongnu.org; Fri, 04 Mar 2022 10:37:44 -0500 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]:30254) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nQ9zy-0007WI-Ox for qemu-devel@nongnu.org; Fri, 04 Mar 2022 10:37:44 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1646408262; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=aC/9+ovHaTetUqJKmZNYrehqP2GdRa9M7e1buQepVAQ=; b=bGOZ5gzDa1MqSPY3ksSBPJc5AyJDHn8UMcWWFZoccINT4KAMa2uo7LWM5KN0n50FWeMJmb Ed5UHgTHzVGSrg2rlohcw08fu+ohc+98jjZtVcgcfhQGBXn/vtPxbFBngVt1iWUkhJLQzK lMfpuXosMxrrXsalRNEtmhMgbNv5pDc= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-635-OIGM29gTOk-0GnQVjzmLIw-1; Fri, 04 Mar 2022 10:37:39 -0500 X-MC-Unique: OIGM29gTOk-0GnQVjzmLIw-1 Received: from smtp.corp.redhat.com (int-mx07.intmail.prod.int.phx2.redhat.com [10.5.11.22]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 3BAC61854E26; Fri, 4 Mar 2022 15:37:38 +0000 (UTC) Received: from localhost (unknown [10.39.193.145]) by smtp.corp.redhat.com (Postfix) with ESMTPS id CCC0E1037F29; Fri, 4 Mar 2022 15:37:37 +0000 (UTC) From: Hanna Reitz To: qemu-block@nongnu.org Subject: [PATCH 1/5] block/amend: Clean up job on early failure Date: Fri, 4 Mar 2022 16:37:25 +0100 Message-Id: <20220304153729.711387-2-hreitz@redhat.com> In-Reply-To: <20220304153729.711387-1-hreitz@redhat.com> References: <20220304153729.711387-1-hreitz@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.84 on 10.5.11.22 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=hreitz@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Received-SPF: pass client-ip=170.10.129.124; envelope-from=hreitz@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -28 X-Spam_score: -2.9 X-Spam_bar: -- X-Spam_report: (-2.9 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.082, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=unavailable autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Kevin Wolf , Emanuele Giuseppe Esposito , Hanna Reitz , qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" Signed-off-by: Hanna Reitz --- block/amend.c | 1 + 1 file changed, 1 insertion(+) diff --git a/block/amend.c b/block/amend.c index 329bca53dc..f465738665 100644 --- a/block/amend.c +++ b/block/amend.c @@ -134,6 +134,7 @@ void qmp_x_blockdev_amend(const char *job_id, s->force = has_force ? force : false; if (blockdev_amend_pre_run(s, errp)) { + job_early_fail(&s->common); return; } From patchwork Fri Mar 4 15:37:26 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Hanna Czenczek X-Patchwork-Id: 12769352 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 1A779C433EF for ; Fri, 4 Mar 2022 15:40:38 +0000 (UTC) Received: from localhost ([::1]:58746 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nQA2m-0002Sl-1E for qemu-devel@archiver.kernel.org; Fri, 04 Mar 2022 10:40:36 -0500 Received: from eggs.gnu.org ([209.51.188.92]:59892) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nQA01-0007ZW-E2 for qemu-devel@nongnu.org; Fri, 04 Mar 2022 10:37:45 -0500 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]:36383) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nQ9zz-0007WU-W2 for qemu-devel@nongnu.org; Fri, 04 Mar 2022 10:37:45 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1646408263; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=UXh0E/V0SUiC/Mb1BAqQZYZ7NWIvGlvSYfGxHftUdrQ=; b=dWexezQBL7nlCxg1M3/wazJOvlVlZgJEr13JNjqNtfgZU/70XUHyVWbnzlhewCK7F1mank SFSZ0jBDPY7Q/6BdQ6Oss905NDD/y6SFrlLvwjmFYFpIPHXSWv501bwC5p6NHfMcG/wO4y ZLU874X/+poK4s32tCw1WuMOv9xCx7c= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-392-dMP66MZ1MlS5-KEFfDTdzQ-1; Fri, 04 Mar 2022 10:37:41 -0500 X-MC-Unique: dMP66MZ1MlS5-KEFfDTdzQ-1 Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 526C11091DA0; Fri, 4 Mar 2022 15:37:40 +0000 (UTC) Received: from localhost (unknown [10.39.193.145]) by smtp.corp.redhat.com (Postfix) with ESMTPS id EDDD786B88; Fri, 4 Mar 2022 15:37:39 +0000 (UTC) From: Hanna Reitz To: qemu-block@nongnu.org Subject: [PATCH 2/5] block/amend: Always call .bdrv_amend_clean() Date: Fri, 4 Mar 2022 16:37:26 +0100 Message-Id: <20220304153729.711387-3-hreitz@redhat.com> In-Reply-To: <20220304153729.711387-1-hreitz@redhat.com> References: <20220304153729.711387-1-hreitz@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.12 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=hreitz@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Received-SPF: pass client-ip=170.10.133.124; envelope-from=hreitz@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -28 X-Spam_score: -2.9 X-Spam_bar: -- X-Spam_report: (-2.9 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.082, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Kevin Wolf , Emanuele Giuseppe Esposito , Hanna Reitz , qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" .bdrv_amend_clean() says block drivers can use it to clean up what was done in .bdrv_amend_pre_run(). Therefore, it should always be called after .bdrv_amend_pre_run(), which means we need it to call it in the JobDriver.free() callback, not in JobDriver.clean(). Signed-off-by: Hanna Reitz --- block/amend.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/block/amend.c b/block/amend.c index f465738665..553890ded9 100644 --- a/block/amend.c +++ b/block/amend.c @@ -62,7 +62,7 @@ static int blockdev_amend_pre_run(BlockdevAmendJob *s, Error **errp) return 0; } -static void blockdev_amend_clean(Job *job) +static void blockdev_amend_free(Job *job) { BlockdevAmendJob *s = container_of(job, BlockdevAmendJob, common); @@ -75,7 +75,7 @@ static const JobDriver blockdev_amend_job_driver = { .instance_size = sizeof(BlockdevAmendJob), .job_type = JOB_TYPE_AMEND, .run = blockdev_amend_run, - .clean = blockdev_amend_clean, + .free = blockdev_amend_free, }; void qmp_x_blockdev_amend(const char *job_id, From patchwork Fri Mar 4 15:37:27 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Hanna Czenczek X-Patchwork-Id: 12769359 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id A458EC433EF for ; Fri, 4 Mar 2022 15:46:18 +0000 (UTC) Received: from localhost ([::1]:46748 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nQA8H-0004zv-M8 for qemu-devel@archiver.kernel.org; Fri, 04 Mar 2022 10:46:17 -0500 Received: from eggs.gnu.org ([209.51.188.92]:59988) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nQA09-0007mP-KG for qemu-devel@nongnu.org; Fri, 04 Mar 2022 10:37:55 -0500 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]:52869) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nQA07-0007Xo-Fk for qemu-devel@nongnu.org; Fri, 04 Mar 2022 10:37:52 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1646408270; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=+QB5pDNvJfJIln2QM0DEQ0/qO60xkWpId2XZ6hw2ap4=; b=GffdJ38pbiXjSdNVxRbEa68MC3T+F/OpB9aPqm+jpETzJnrI+E1SYYMvueVqQH8dhM87kx xTRw2C22rD7obwEEdBe/jIfAQBv6fyN+6YUuJYQL01MC7lrc5ZqV69o+/dMoHANL/SWQ+6 7fhKR3ise4Wgn41THN9wtqvRuqtrJrY= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-7-oaGoKvErN4aurJOCipFCSQ-1; Fri, 04 Mar 2022 10:37:47 -0500 X-MC-Unique: oaGoKvErN4aurJOCipFCSQ-1 Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 378041091DA4; Fri, 4 Mar 2022 15:37:46 +0000 (UTC) Received: from localhost (unknown [10.39.193.145]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 117067BCCE; Fri, 4 Mar 2022 15:37:41 +0000 (UTC) From: Hanna Reitz To: qemu-block@nongnu.org Subject: [PATCH 3/5] block/crypto: Reset updating_keys on perm failure Date: Fri, 4 Mar 2022 16:37:27 +0100 Message-Id: <20220304153729.711387-4-hreitz@redhat.com> In-Reply-To: <20220304153729.711387-1-hreitz@redhat.com> References: <20220304153729.711387-1-hreitz@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.14 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=hreitz@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Received-SPF: pass client-ip=170.10.129.124; envelope-from=hreitz@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -28 X-Spam_score: -2.9 X-Spam_bar: -- X-Spam_report: (-2.9 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.082, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=unavailable autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Kevin Wolf , Emanuele Giuseppe Esposito , Hanna Reitz , qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" When the permissions could not be changed as would be necessary for updating the keys, reset updating_keys to false so block_crypto_child_perms() will not continue to try claiming these permissions. Signed-off-by: Hanna Reitz --- block/crypto.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/block/crypto.c b/block/crypto.c index 5225a68a54..9d5fecbef8 100644 --- a/block/crypto.c +++ b/block/crypto.c @@ -781,10 +781,16 @@ static int block_crypto_amend_prepare(BlockDriverState *bs, Error **errp) { BlockCrypto *crypto = bs->opaque; + int ret; /* apply for exclusive read/write permissions to the underlying file */ crypto->updating_keys = true; - return bdrv_child_refresh_perms(bs, bs->file, errp); + ret = bdrv_child_refresh_perms(bs, bs->file, errp); + if (ret < 0) { + /* Well, in this case we will not be updating any keys */ + crypto->updating_keys = false; + } + return ret; } static void From patchwork Fri Mar 4 15:37:28 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Hanna Czenczek X-Patchwork-Id: 12769353 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 74ED3C433EF for ; Fri, 4 Mar 2022 15:43:23 +0000 (UTC) Received: from localhost ([::1]:38294 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nQA5S-0007lq-Ja for qemu-devel@archiver.kernel.org; Fri, 04 Mar 2022 10:43:22 -0500 Received: from eggs.gnu.org ([209.51.188.92]:59990) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nQA09-0007mQ-KM for qemu-devel@nongnu.org; Fri, 04 Mar 2022 10:37:55 -0500 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]:44117) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nQA07-0007Xs-HO for qemu-devel@nongnu.org; Fri, 04 Mar 2022 10:37:52 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1646408270; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=hHmCSoucrHaQHirB6lh7gWEVtW2t7wNeqE1FY1WCEoA=; b=P6USZGAUIBABqn+zayKr/pRSx66Wx04rJ3sfxF2iULUv3r0+p7dL5OQYwP1xvZCNl72Tft 8yfA/7UtTfp5LfCRBfhqPS9ScixoWaiZ3NH6YhTzLemQLoib2+OjLCBjP4u4IuoVwVOjxw y7mqU4Lai6C7qDq0JBCAUz/ThEvx6Hc= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-13-WzLDioDgMa-RVO9Jo8p3jA-1; Fri, 04 Mar 2022 10:37:49 -0500 X-MC-Unique: WzLDioDgMa-RVO9Jo8p3jA-1 Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 8CE34824FA7; Fri, 4 Mar 2022 15:37:48 +0000 (UTC) Received: from localhost (unknown [10.39.193.145]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 3119583C11; Fri, 4 Mar 2022 15:37:48 +0000 (UTC) From: Hanna Reitz To: qemu-block@nongnu.org Subject: [PATCH 4/5] block/amend: Keep strong reference to BDS Date: Fri, 4 Mar 2022 16:37:28 +0100 Message-Id: <20220304153729.711387-5-hreitz@redhat.com> In-Reply-To: <20220304153729.711387-1-hreitz@redhat.com> References: <20220304153729.711387-1-hreitz@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=hreitz@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Received-SPF: pass client-ip=170.10.129.124; envelope-from=hreitz@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -28 X-Spam_score: -2.9 X-Spam_bar: -- X-Spam_report: (-2.9 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.082, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Kevin Wolf , Emanuele Giuseppe Esposito , Hanna Reitz , qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" Otherwise, the BDS might be freed while the job is running, which would cause a use-after-free. Signed-off-by: Hanna Reitz --- block/amend.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/block/amend.c b/block/amend.c index 553890ded9..f696a006e3 100644 --- a/block/amend.c +++ b/block/amend.c @@ -69,6 +69,8 @@ static void blockdev_amend_free(Job *job) if (s->bs->drv->bdrv_amend_clean) { s->bs->drv->bdrv_amend_clean(s->bs); } + + bdrv_unref(s->bs); } static const JobDriver blockdev_amend_job_driver = { @@ -129,6 +131,7 @@ void qmp_x_blockdev_amend(const char *job_id, return; } + bdrv_ref(bs); s->bs = bs, s->opts = QAPI_CLONE(BlockdevAmendOptions, options), s->force = has_force ? force : false; From patchwork Fri Mar 4 15:37:29 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Hanna Czenczek X-Patchwork-Id: 12769363 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id E5497C433EF for ; Fri, 4 Mar 2022 15:52:25 +0000 (UTC) Received: from localhost ([::1]:36244 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nQAEC-0000P8-L8 for qemu-devel@archiver.kernel.org; Fri, 04 Mar 2022 10:52:24 -0500 Received: from eggs.gnu.org ([209.51.188.92]:60052) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nQA0H-0007pN-40 for qemu-devel@nongnu.org; Fri, 04 Mar 2022 10:38:04 -0500 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]:28838) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nQA0D-0007YV-4T for qemu-devel@nongnu.org; Fri, 04 Mar 2022 10:37:59 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1646408276; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=gUJRlPBg0dHyb+Wfd94cNo0F8TwLin9Pvxwj5MHh6lE=; b=IA41ni21ps0iCQxVVkFd7gCfRdhHlAFi5Rj2E4GwKWf9Isuj5UzHJwejJoGTDTtOV1N9mO eXTZdGhol1ozGzSOPFt1ZTvPxVRNPdvGF4CgUKOQ2dSbVO9Ufdwuc0FmJLOhSWHbNrttYK w1SIRA8IfeuHCuGO+Z/I0gvMGLtjguI= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-447-PKq6kF6aOcmI27RW_eZnzA-1; Fri, 04 Mar 2022 10:37:52 -0500 X-MC-Unique: PKq6kF6aOcmI27RW_eZnzA-1 Received: from smtp.corp.redhat.com (int-mx07.intmail.prod.int.phx2.redhat.com [10.5.11.22]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id C78F11006AA5; Fri, 4 Mar 2022 15:37:51 +0000 (UTC) Received: from localhost (unknown [10.39.193.145]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 6B72D1037F22; Fri, 4 Mar 2022 15:37:51 +0000 (UTC) From: Hanna Reitz To: qemu-block@nongnu.org Subject: [PATCH 5/5] iotests/296: Accept early failure Date: Fri, 4 Mar 2022 16:37:29 +0100 Message-Id: <20220304153729.711387-6-hreitz@redhat.com> In-Reply-To: <20220304153729.711387-1-hreitz@redhat.com> References: <20220304153729.711387-1-hreitz@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.84 on 10.5.11.22 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=hreitz@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Received-SPF: pass client-ip=170.10.129.124; envelope-from=hreitz@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -28 X-Spam_score: -2.9 X-Spam_bar: -- X-Spam_report: (-2.9 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.082, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=unavailable autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Kevin Wolf , Emanuele Giuseppe Esposito , Hanna Reitz , qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" As of "crypto: perform permission checks under BQL", permission failures occur early in the blockdev-amend job to update a LUKS volume's keys. Expect them in x-blockdev-amend's QMP reply instead of waiting for the actual job to fail later. (Note that the job will still be created, so we need to wait for it to disappear even when the QMP command failed. Otherwise, the job ID "job0" will remain in use and we cannot launch another job with the same ID.) Signed-off-by: Hanna Reitz --- tests/qemu-iotests/296 | 8 ++++++-- tests/qemu-iotests/296.out | 17 +++++------------ 2 files changed, 11 insertions(+), 14 deletions(-) diff --git a/tests/qemu-iotests/296 b/tests/qemu-iotests/296 index 099a3eeaa5..f80ef3434a 100755 --- a/tests/qemu-iotests/296 +++ b/tests/qemu-iotests/296 @@ -174,8 +174,12 @@ class EncryptionSetupTestCase(iotests.QMPTestCase): } result = vm.qmp('x-blockdev-amend', **args) - assert result['return'] == {} - vm.run_job('job0') + iotests.log(result) + # Run the job only if it was created + event = ('JOB_STATUS_CHANGE', + {'data': {'id': 'job0', 'status': 'created'}}) + if vm.events_wait([event], timeout=0.0) is not None: + vm.run_job('job0') # test that when the image opened by two qemu processes, # neither of them can update the encryption keys diff --git a/tests/qemu-iotests/296.out b/tests/qemu-iotests/296.out index 42205cc981..609826eaa0 100644 --- a/tests/qemu-iotests/296.out +++ b/tests/qemu-iotests/296.out @@ -1,11 +1,9 @@ -{"execute": "job-dismiss", "arguments": {"id": "job0"}} {"return": {}} -Job failed: Failed to get shared "consistent read" lock {"execute": "job-dismiss", "arguments": {"id": "job0"}} {"return": {}} -Job failed: Failed to get shared "consistent read" lock -{"execute": "job-dismiss", "arguments": {"id": "job0"}} +{"error": {"class": "GenericError", "desc": "Failed to get shared \"consistent read\" lock"}} +{"error": {"class": "GenericError", "desc": "Failed to get shared \"consistent read\" lock"}} {"return": {}} {"execute": "job-dismiss", "arguments": {"id": "job0"}} {"return": {}} @@ -13,14 +11,9 @@ qemu-img: Failed to get shared "consistent read" lock Is another process using the image [TEST_DIR/test.img]? . -Job failed: Block node is read-only -{"execute": "job-dismiss", "arguments": {"id": "job0"}} -{"return": {}} -Job failed: Failed to get shared "consistent read" lock -{"execute": "job-dismiss", "arguments": {"id": "job0"}} -{"return": {}} -Job failed: Failed to get shared "consistent read" lock -{"execute": "job-dismiss", "arguments": {"id": "job0"}} +{"error": {"class": "GenericError", "desc": "Block node is read-only"}} +{"error": {"class": "GenericError", "desc": "Failed to get shared \"consistent read\" lock"}} +{"error": {"class": "GenericError", "desc": "Failed to get shared \"consistent read\" lock"}} {"return": {}} {"execute": "job-dismiss", "arguments": {"id": "job0"}} {"return": {}}