From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail.openvz.org (mail.openvz.org [69.168.225.77]) by lore.virtuozzo.com (Postfix) with ESMTPS id BBD6680DC1 for ; Tue, 27 Oct 2026 17:50:45 +0000 (UTC) Received: from mail.openvz.org (localhost [127.0.0.1]) by mail.openvz.org (8.14.4/8.14.4) with ESMTP id 69RHnXaP031985; Tue, 27 Oct 2026 20:49:33 +0300 DKIM-Filter: OpenDKIM Filter v2.11.0 mail.openvz.org 69RHnXaP031985 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=openvz.org; s=default; t=1793123374; bh=QuZRJp0BTJoshcrGm13yFn+XlWyGW2LwkF9GDSmNx8U=; h=From:To:Date:In-Reply-To:References:Cc:Subject:List-Id: List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe; b=tn3EF1tERd3c+dIpLuY8fPaI9ShFMF/S1oDTDO/M2QSYGwW2GfAWk71N46rjakEbE a3opQxA9M6m1EMcbCMG7wlz1cMAAT+oeH8wb1RhFU/UPWX41jmNk5YbcbfBg3Sv1Y+ qIpO7UQ5krvJOG5c/RwyjKDQggxygCf1CFubpzBkcGLPAR1UO0hq2iYMXJmw6L/3DN oYSp26U6j4QIzaqUwS3ICNVP1uXtF1YBRw9XtlK/yM/cG+Bx2dSD3riWwWsLj0dmIU NRhXiWrA6azCDYmgZHJLofjRrOUm6VOkoijneHeBXy36pcUsC45rosTD8WIkiY3SrD SoODCmKRIlvwA== Received: from mail-wm1-f69.google.com (mail-wm1-f69.google.com [209.85.128.69]) by mail.openvz.org (8.14.4/8.14.4) with ESMTP id 69RHnUVH031972 (version=TLSv1/SSLv3 cipher=AES128-GCM-SHA256 bits=128 verify=FAIL) for ; Tue, 27 Oct 2026 20:49:30 +0300 DKIM-Filter: OpenDKIM Filter v2.11.0 mail.openvz.org 69RHnUVH031972 Authentication-Results: mail.openvz.org; dkim=pass (2048-bit key) header.d=openvz.org header.i=@openvz.org header.b="Pkxfwirq" Received: by mail-wm1-f69.google.com with SMTP id 5b1f17b1804b1-4a318cd95e8so1045415e9.0 for ; Tue, 27 Oct 2026 10:49:30 -0700 (PDT) X-Gm-Message-State: AFq9FYJXqu+GCr922X50HyjqYiybsV11NoCcff3f/czbWhcLLdeB2Icn WXSFmjuYZT9sB5bhciaYcn8Vi/yHY4ELCHRmwSbTPf3ZtV6TGenZA8SmBfLV35mJU5DX1mxalVr adJTccsasFdWD44BfABiFX8QXIlcE2Gceis7HD3nRbXz+HufqI9KMXg== X-Gm-Gg: AYBFou3jyu5rUPheDmJx9UMr0bFMSP7Qp3S46pt02woVz1uabSD74kyF714jeRBQAyw kg2hNDst+J/90GbNo/Br3nZ7GI8gR1ZHXPuI+qoQo4mn87bAI7SjI/2bZ8zcOSusenO2Uu+ghc1 7ATAYCMq5lmZpzs8ogJvhNQIFKPdycQCPXsDtR0Nbx7ayLDmbzx2rwcyHXGG3iGYJL9qEyt7XU6 SO749By2VCR724j5PvUYgE4vizC7prGeXJnv0vAb6nKoeNXppUJg6E/JxikbFmbJeX1cbA6T2wN R+StFDA6SQ== X-Received: by 2002:a05:600c:a318:b0:49f:c5aa:9ef4 with SMTP id 5b1f17b1804b1-4a7c0b3f6c2mr56388775e9.8.1793123370048; Tue, 27 Oct 2026 10:49:30 -0700 (PDT) X-Received: by 2002:a05:600c:a318:b0:49f:c5aa:9ef4 with SMTP id 5b1f17b1804b1-4a7c0b3f6c2mr56388435e9.8.1793123369587; Tue, 27 Oct 2026 10:49:29 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1793123369; cv=none; d=google.com; s=arc-20260327; b=OFHS7BTQXS48uIGDIcS814PJt7bIe3aBSe032bmZyutN+tgWmmXVzCFMcmkc6zGNsu 93XZi3ddz2BHyHzLDgxtQwGvQqvT3SHFeqSWVNh6UJP+B0eK9Bj+EpJ4Oe1bvsHe9RX6 5KmrFmbg8D0Pjj12sh0n8R3AaGUZ6zhaOjkOuMISmi1xu3uwu5si2K5znzyXge3slOmv rKj7cq/yUaQZhdDSXugf9m1mYGI3L3KzU4oRAyrdKL01XC8gLwxjII/uyA3k8eITinT4 hjj13nzuzUDH3w1ol5F51sKubf1C4IyZxycuzrc9LTm9XsTih0GWCYMQ4BFyYk0wcosR J1Gw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20260327; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:dkim-signature; bh=9WiDAQOdYmJFvAvY0RGV1Il1mxCC/HmaddFIZ9vHaaI=; fh=Kr/R+ZQiC/tid3qUs5C3px+AHPSuipOrrdrDcZfSlMY=; b=MwZOyIYCj39xsXj1MArP4VKd1ISOeYxUOFe+3Kiy0KGqA8bQrHY6RUW5uyA+oaDJ8g LRDHimcLDGX3xrd82gnKxARm+ycKR8EdYp8El5BT38b9IsD9rhJ86+cif7o1+cj9LiRu kyBW43ieva41DyB7PbslsTBcmbcUUwCUiUZB6U8qyogG6ae3YMnv9H19TVOYKsHFhv5s YO9hKzrUBfVRPm3FKzrVnrytf5Y2yRlP4iIlpeEAZq88ef8WGQj3C/CIRJ3AzzhB7SzM P/9GWP1PI4Rab5nD9f9/n/HI/tBNawEb3QeRg1+tLBF5whYqvIiUfazRxX+y6fKMF328 sXZA==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@openvz.org header.s=google header.b=Pkxfwirq; spf=softfail (google.com: domain of transitioning den@openvz.org does not designate 2a06:5b06:b600:300:a5e9:5d2:969c:16de as permitted sender) smtp.mailfrom=den@openvz.org; dara=neutral header.i=@openvz.org Received: from mail-sor-f41.google.com (mail-sor-f41.google.com. [209.85.220.41]) by mx.google.com with SMTPS id 5b1f17b1804b1-4a35a549f58sor28145435e9.3.2026.10.27.10.49.29 for (Google Transport Security); Tue, 27 Oct 2026 10:49:29 -0700 (PDT) Received-SPF: softfail (google.com: domain of transitioning den@openvz.org does not designate 2a06:5b06:b600:300:a5e9:5d2:969c:16de as permitted sender) client-ip=2a06:5b06:b600:300:a5e9:5d2:969c:16de; Authentication-Results: mx.google.com; dkim=pass header.i=@openvz.org header.s=google header.b=Pkxfwirq; spf=softfail (google.com: domain of transitioning den@openvz.org does not designate 2a06:5b06:b600:300:a5e9:5d2:969c:16de as permitted sender) smtp.mailfrom=den@openvz.org; dara=neutral header.i=@openvz.org DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=openvz.org; s=google; t=1793123369; x=1793728169; darn=openvz.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=9WiDAQOdYmJFvAvY0RGV1Il1mxCC/HmaddFIZ9vHaaI=; b=Pkxfwirq54HlCtl/HGW7riYAxuR8Z3JqA5o921Cumddp7nT0lTCFX1oonrt56yjjkU YTaEZkRtcQga3Xe3FdMfjOTXxAOi8a0RY9KCXTGalqUpns9v9Mgo1RbAYnX5HRz2zFz8 HOo7gkEgd8F13RHWHMqyA8E32pXt0uBu+YJSCYCZzG+xTHXT3MXcQ9y7eSqcXhWIf2Ca iADk7jcxnwT256Xh78MYlMMUmFhw2u4LWHTWmUQeyNgzGgSVf7O7PvS5O19LaPklFtSf 1+DgB5fAZ9Gll8oacyesDDJwzNRrg3r0z4BVdtbhhv0WC0SrDb9GsXQLBhSc+GuS4bX2 760A== X-Received: by 2002:a05:600c:34cb:b0:4a8:a341:2377 with SMTP id 5b1f17b1804b1-4a8a34123eemr41984385e9.3.1793123369197; Tue, 27 Oct 2026 10:49:29 -0700 (PDT) Received: from athena.sw.ru ([2a06:5b06:b600:300:a5e9:5d2:969c:16de]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4a92fce709fsm5939195e9.5.2026.10.27.10.49.26 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 27 Oct 2026 10:49:28 -0700 (PDT) From: "Denis V. Lunev" To: andrey.zhadchenko@virtuozzo.com Date: Tue, 27 Oct 2026 18:49:22 +0100 Message-ID: <20261027174922.2254893-3-den@openvz.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20261027174922.2254893-1-den@openvz.org> References: <20261027174922.2254893-1-den@openvz.org> MIME-Version: 1.0 X-OZ-Fwd: true Cc: devel@openvz.org Subject: [Devel] [PATCH hci-8.1 2/2] dm-qcow2: fix a merge reporting success after a failed write X-BeenThere: devel@openvz.org X-Mailman-Version: 2.1.12 Precedence: list List-Id: OpenVZ development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: devel-bounces@openvz.org Errors-To: devel-bounces@openvz.org From: Denis V. Lunev qcow2_service_iter() collects the status of its service qios in a function-local static shared by every dm-qcow2 device, and resets it to OK when it starts. A merge or L1 COW break starting on one device while another one runs wipes the error the other one recorded. That one then finishes and reports success although a qio failed, so userspace may complete the merge and drop the top image, losing data that never reached the lower image. Keep the status on the stack. The qios carry a pointer to it, so the function must not return while one of them is outstanding: every exit already waits for service_qios to drain, and a BUG_ON after the wait stops the kernel rather than let a late qio write into a dead stack frame if that ever changes. Fixes: 222b6f1291c1 ("dm-qcow2: Introduce driver to create block devices over QCOW2 files") Signed-off-by: Denis V. Lunev Feature: dm-qcow2: block device over QCOW2 files driver --- drivers/md/dm-qcow2-cmd.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/md/dm-qcow2-cmd.c b/drivers/md/dm-qcow2-cmd.c index 2865940cff30..c7e77677d8e6 100644 --- a/drivers/md/dm-qcow2-cmd.c +++ b/drivers/md/dm-qcow2-cmd.c @@ -65,13 +65,11 @@ static bool qcow2_backward_merge_should_stop(struct qcow2_target *tgt); static int qcow2_service_iter(struct qcow2_target *tgt, struct qcow2 *qcow2, loff_t end, loff_t step, unsigned int bi_op, u8 qio_flags) { - static blk_status_t service_status; + blk_status_t service_status = BLK_STS_OK; struct qio *qio; int ret = 0; loff_t pos; - WRITE_ONCE(service_status, BLK_STS_OK); - backward_merge_update_max_progress(tgt, end); for (pos = 0; pos < end; pos += step) { backward_merge_update_progress(tgt, pos); @@ -106,6 +104,8 @@ static int qcow2_service_iter(struct qcow2_target *tgt, struct qcow2 *qcow2, } wait_event(tgt->service_wq, !atomic_read(&tgt->service_qios)); + /* The qios point at service_status on our stack */ + BUG_ON(atomic_read(&tgt->service_qios)); if (!ret) { smp_rmb(); /* Pairs with smp_wmb() in service_qio_endio() */ ret = blk_status_to_errno(READ_ONCE(service_status)); -- 2.53.0 _______________________________________________ Devel mailing list Devel@openvz.org https://lists.openvz.org/mailman/listinfo/devel