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 621F080BB3 for ; Thu, 22 Oct 2026 12:18:53 +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 69MCHdOg008142; Thu, 22 Oct 2026 15:17:40 +0300 DKIM-Filter: OpenDKIM Filter v2.11.0 mail.openvz.org 69MCHdOg008142 Authentication-Results: mail.openvz.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=virtuozzo.com header.i=@virtuozzo.com header.b="Y3IAVoAk" Received: from mail-wr1-f71.google.com (mail-wr1-f71.google.com [209.85.221.71]) by mail.openvz.org (8.14.4/8.14.4) with ESMTP id 69MCHJ41008082 (version=TLSv1/SSLv3 cipher=AES128-GCM-SHA256 bits=128 verify=FAIL) for ; Thu, 22 Oct 2026 15:17:19 +0300 DKIM-Filter: OpenDKIM Filter v2.11.0 mail.openvz.org 69MCHJ41008082 Received: by mail-wr1-f71.google.com with SMTP id ffacd0b85a97d-48b02d63407so1158992f8f.0 for ; Thu, 22 Oct 2026 05:17:19 -0700 (PDT) X-Forwarded-Encrypted: i=2; AKwUvBxs7XQrDhuIVrRE0A0fKKPpxk1iidKpe2Om6mVa1qWu/aO5GZPuELEVK3nzKuh7HG9WWGysTA==@openvz.org X-Gm-Message-State: AFq9FYLijFlpqITFxtwzVtJWkFcDWIsY8SRQVlxPje6wUM0VFnlSUYu5 3+ZfBzOnx5xvQiHKcFLh0FUZ1zpxaNas5sdTWGM0ShnIjfqzuWgQdPw9kOzcajdi+66SElZs+Me BQdC/KPi20VGVyza19taL4juF4GkEYTUx93TlmYs2il8ltGdPJ2e4bg== X-Gm-Gg: AYBFou2SF5VE7o6DU5qgOpB1Ug99NqSSaWmHtjGXFtQvPwVYVo9dkPup1Wg1mBq0vuG aAM3jMeH/JwJttdj7pwJoK0jaj5dUdJNYANmAjkMCx2sj6blPNgt8sWzle4oFlaZc2FAkCLkuTD G+jJpsjcyjnybyQ2Ko56H4oEo12CKuYPG4zZrCB43iTTC1hyx03LLmX4gxgUDfG6Ido2zuJjwNO O1ekdseUBIvAVSKkcufje0Vy5ACfJwUFIJ5r7WpnpRrOLfsjQJskq0YorUDaRnHyRfzBdTC6YHr /H+vkchJ5l0eCteBmPI70DdRKKn1a/FM+LI43F4g73YZW4XdedYB+hWQxP3KzaH/2KzhF6g3OUt xUfSGKBzDVY9bOy+mAbgp3YpRZPU= X-Received: by 2002:a05:6000:186b:b0:48d:fdc0:8bf2 with SMTP id ffacd0b85a97d-48e264d6ac5mr10286885f8f.41.1792671439120; Thu, 22 Oct 2026 05:17:19 -0700 (PDT) X-Received: by 2002:a05:6000:186b:b0:48d:fdc0:8bf2 with SMTP id ffacd0b85a97d-48e264d6ac5mr10286837f8f.41.1792671438493; Thu, 22 Oct 2026 05:17:18 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1792671438; cv=none; d=google.com; s=arc-20260327; b=BzPVgilAgTchLL6PfCMcVmIg+ra2R3fDyy+9dPkyNbGZmxpDm+umgbMFmcXCEHJscg PUgoH3Q28bg9Yi1jng+3IJcQYyvPQdiEUQF0xxo7bxMujWtWPxDanZBwgkwwWcc+kG4r ECZM4xdLNoi96Z5a6p0BKBf5D1Xuy8U9JYefaDhs+oRD0WQSdSEco7+NDI8fg/T2ISf/ Nmiz5oaed/ER61Qh0tTlv8JgsDLcwMBzUYwpB1Pffm6pZ8aNP6K3sp6otKN0DY1gVHm0 751slZZoLrS2TD8Ca102Uv6dZ72dJIOiaMu1AFRGXoecmbPa6AmsHOF1dbUgn/+oifuB jToQ== 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=ykBgwAUsVAHJiRrkE7P5ycuWFKnm6/O5O3d1+6Wjuok=; fh=1MEQxOGYABaQPNQS1Ckioh0rrUOwgCYjd8t5csgx5as=; b=V7V/eNOllzpOFs0/TEN+eXPcEhsgC52Fc5xvfvSYY1587bf7ooiOKpilQB6GZEvX52 yL01/uh4/ZW6MErrSkZJJ1rplj4KRXXFzuIMxpZKCYRH2oUDa96LogxzmDZ2Vubxb/ep b3suJ2Ez+Xm1F+Z7en1UgDWoyOVtmzLqDYfPvxuGMtlH+Yj6vMq7XqJvnDZFxEyyzr2f KmUL5Y/eOTWNWtjom34wn0a6ZnKRwrCRNVL9vdOOi7kl2zCoEDMvu8DX45Kqv9+GAGJN e5RE41okuM32kCey1rBVefoYUpML0Q4ytEenM71SreCO1h12YDK2bu0gc+ILuSpWqPUv L4bw==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@virtuozzo.com header.s=relay header.b=Y3IAVoAk; spf=pass (google.com: domain of alexander.ivanov@virtuozzo.com designates 130.117.225.111 as permitted sender) smtp.mailfrom=alexander.ivanov@virtuozzo.com; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=virtuozzo.com Received: from relay.virtuozzo.com (relay.virtuozzo.com. [130.117.225.111]) by mx.google.com with ESMTPS id ffacd0b85a97d-48e25db352csi10104647f8f.174.2026.10.22.05.17.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 22 Oct 2026 05:17:18 -0700 (PDT) Received-SPF: pass (google.com: domain of alexander.ivanov@virtuozzo.com designates 130.117.225.111 as permitted sender) client-ip=130.117.225.111; Authentication-Results: mx.google.com; dkim=pass header.i=@virtuozzo.com header.s=relay header.b=Y3IAVoAk; spf=pass (google.com: domain of alexander.ivanov@virtuozzo.com designates 130.117.225.111 as permitted sender) smtp.mailfrom=alexander.ivanov@virtuozzo.com; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=virtuozzo.com DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=virtuozzo.com; s=relay; h=MIME-Version:Message-ID:Date:Subject:From: Content-Type; bh=ykBgwAUsVAHJiRrkE7P5ycuWFKnm6/O5O3d1+6Wjuok=; b=Y3IAVoAkaC9z DvXfRj2zErXsmSa8FqDJp8ARojiSglABX7sqkKTUOCGKIGBjf/eMACGsKl8E/urZGu2JTHpOGt6hm /twwCBiRUuBGbf23P7wSl/GD1Pw1BXcsD6oKskjOvh5J9aDKFUzEoi/DfETuhn6pvgr15M4ZUqTwa t+kg59X3ppmmOzkb5HLTEI+tGyngB24qeyK27jfjfO8Dr5n1Uk+BM083IgPCV4oKTb73QoJdVHstr Hnqr3v27pcBGsC+YhNwvBDkj9uwpWinOCIaEJ5EGEETs5I8i8wvC3j0lmCqcTJr0CjYFGaVH6EonE yR7yuMQQ1dtExI4Mjmjr3w==; Received: from ch-vpn.virtuozzo.com ([130.117.225.6] helo=sky) by relay.virtuozzo.com with esmtps (TLS1.3) tls TLS_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1xJrfo-00Dc1n-2K; Thu, 22 Oct 2026 14:17:15 +0200 From: Alexander Ivanov To: andrey.zhadchenko@virtuozzo.com Date: Thu, 22 Oct 2026 14:17:05 +0200 Message-ID: <20261022121706.1890593-6-alexander.ivanov@virtuozzo.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20261022121706.1890593-1-alexander.ivanov@virtuozzo.com> References: <20261022121706.1890593-1-alexander.ivanov@virtuozzo.com> MIME-Version: 1.0 X-OZ-Fwd: true Cc: devel@openvz.org Subject: [Devel] [PATCH hci-8.1 v6 5/6] dm-qcow2: keep the dirty bit of an image opened dirty 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 With kernel_sets_dirty_bit, postsuspend clears the dirty bit unconditionally. An image that is dirty at open, e.g. after a crash, has unrepaired refcounts, which may be below real usage, yet it is marked clean on disk after the first suspend. A userspace check before the next open then has no reason to repair it. Clear the bit only if it isn't set in the parsed header. The kernel sets the bit in the raw header page only, so hdr.incompatible_features keeps the state read from disk, which is reread on every preresume. Clearing the bit of an image opened dirty is left to userspace check. This only preserves the on-disk marker. The driver still accepts a dirty image read-write and allocates from its refcounts, so find_unused_cluster() may hand out clusters that L2 still references until the image is checked. https://virtuozzo.atlassian.net/browse/VSTOR-148171 Feature: dm-qcow2: block device over QCOW2 files driver Signed-off-by: Alexander Ivanov --- drivers/md/dm-qcow2-target.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/md/dm-qcow2-target.c b/drivers/md/dm-qcow2-target.c index b667adb5472a..eb56c8de65c3 100644 --- a/drivers/md/dm-qcow2-target.c +++ b/drivers/md/dm-qcow2-target.c @@ -676,7 +676,8 @@ int qcow2_set_image_file_features(struct qcow2 *qcow2, bool dirty) if (kernel_sets_dirty_bit) { if (dirty) raw_hdr->incompatible_features |= dirty_mask; - else + else if (!(qcow2->hdr.incompatible_features & + INCOMPATIBLE_FEATURES_DIRTY_BIT)) raw_hdr->incompatible_features &= ~dirty_mask; } kunmap(md->page); -- 2.53.0 _______________________________________________ Devel mailing list Devel@openvz.org https://lists.openvz.org/mailman/listinfo/devel