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 C266C8017D for ; Thu, 5 Nov 2026 18:20:27 +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 6A5IJDYl007682; Thu, 5 Nov 2026 21:19:13 +0300 DKIM-Filter: OpenDKIM Filter v2.11.0 mail.openvz.org 6A5IJDYl007682 Authentication-Results: mail.openvz.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=virtuozzo.com header.i=@virtuozzo.com header.b="P1LHxaHQ" Received: from mail-wr1-f72.google.com (mail-wr1-f72.google.com [209.85.221.72]) by mail.openvz.org (8.14.4/8.14.4) with ESMTP id 6A5IJ8At007665 (version=TLSv1/SSLv3 cipher=AES128-GCM-SHA256 bits=128 verify=FAIL) for ; Thu, 5 Nov 2026 21:19:08 +0300 DKIM-Filter: OpenDKIM Filter v2.11.0 mail.openvz.org 6A5IJ8At007665 Received: by mail-wr1-f72.google.com with SMTP id ffacd0b85a97d-4916bd6e3baso1027967f8f.0 for ; Thu, 05 Nov 2026 10:19:08 -0800 (PST) X-Forwarded-Encrypted: i=2; AKwUvBznyOH4csoSNGSFCao4oQZqWiP3XdsOYuvAavQ5ejRO4t5BPk3PIyKFz0ZjWSj1dEIQDmyl+g==@openvz.org X-Gm-Message-State: APuU4Z/3C4UfTU98Az4IeSDZ9Yd0AIbUFk7nnNuxyqiiwRXNNb7TxILH VxCr+7HgjWcB8RE908m9H8BqV3IeupDfB7LtQ8ly6IDgV9pdPgRP4DQ6lt4EYNDvxC7WL5g5PTB gKOwGZmd729EGVmsMrg/tPwC9p7NeHA58guLgsi4JjQXa247ZLtVLWA== X-Gm-Gg: AYBFou2NsHdAetPONRJxBnANsZFJXta1Qs+/JquhwWeE7n99BxSqJSDhYKEq5BGoS0O 3GCg7CJkuFcZfpjZI9c7UH30bB5sfTkIHePilnxMjKmWn64ybcrWRpgaUXeYVo0H7aBFXLuK/Sr qyEDUO9OvG5Iu8hYcvJX0hCgEEQmeEnWULjaRA6H74exODNb4IF9+pI2zGnoPA4tb5Lff7Z5C5D cH5LN0KjTJyBAWaPe/E3PLzlhW4GgsjhFqI2ZHog51LGz+pZT6IAiyAo/0hv8vJ6xtfJsa2X5wA lrsrJb9jqx51SRHLc8l2KfoDr1Wjy2BKQ3n+SdmBvQjvfQhihQwgQVnXo6ZlQ8RJcBhZ4JItsZg 9aIannLs92nsU4gzY X-Received: by 2002:a5d:5d82:0:b0:48d:facb:5937 with SMTP id ffacd0b85a97d-49273e5b191mr851316f8f.7.1793902747930; Thu, 05 Nov 2026 10:19:07 -0800 (PST) X-Received: by 2002:a5d:5d82:0:b0:48d:facb:5937 with SMTP id ffacd0b85a97d-49273e5b191mr851275f8f.7.1793902747447; Thu, 05 Nov 2026 10:19:07 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1793902747; cv=none; d=google.com; s=arc-20260327; b=BJ/Y27vC4/obE4GYZA6XhfFiG6Xy5J2ozpXPPCfP3PWKoLRXg3NILIj3lo0BFIrJMx WrzmAE91zIOTPzInDopmhKlpanZCOKNqUfX01VeS8cnckHHtrcvvKq1E2zNGic6xuDvk MXMjOMyV2PdFr2Rc6tADC6SEnstWirg6i2fes98auGGS7k6o8RRYjV8IeI28vMNtB2hz ugQdM9YHqKw3zOcn7qnXhiUGlyxwZrAxaBOusBi84IxVKRehj0zC61lsPi52NX0GTBch GrDPqlUvJE9jiba5ouT36E6Qkfg18yA3J0bz7izKo8SE6IuT1m7VnnsnvyAoPnIHu4K9 rLUA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20260327; h=message-id:date:references:in-reply-to:cc:to:from:subject :content-transfer-encoding:mime-version:dkim-signature; bh=SJnDFyBuVqeG8XqgUZ9fYcO33repFXg9NQdPWMH4szs=; fh=8+L1GLzK3OTQKnTfH5/my9NmwzU+1/k679YBeB1tMzs=; b=ed43zfI9VXkSH8J9IeLDbRIsvyhwxtcT4R+uHIXo8sOhHmVKXksKbLDksHQ4sVMLA4 n78g90Uk00Suvu9O7AgiXRaCz/SZHuIrX8uk+/OAHvxvAuUQs3cCPyXczATt8RYXCkgC XkBe8QESe41V+Tt6/kmJWN15+7ujSDHo360Xg1eKaeEHkYZ23V5e6XhLLx5mZXSYHL7B yTxq8LW0z4itu7qpVOv3hX3caFHr+EQVHbaWVtR8i4+cq/xOI1OXsWtintCyjGkS+dUR V56M1PlZSzHiT0EjX3qJ06ncTs7ZXDZZu95wHGqOjhtSDGdoZxMrcQz6kLhFapLaKHGz YS8A==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@virtuozzo.com header.s=relay header.b=P1LHxaHQ; spf=pass (google.com: domain of khorenko@virtuozzo.com designates 130.117.225.111 as permitted sender) smtp.mailfrom=khorenko@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-48fefd8aa4asi12009237f8f.389.2026.11.05.10.19.07 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 05 Nov 2026 10:19:07 -0800 (PST) Received-SPF: pass (google.com: domain of khorenko@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=P1LHxaHQ; spf=pass (google.com: domain of khorenko@virtuozzo.com designates 130.117.225.111 as permitted sender) smtp.mailfrom=khorenko@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=Message-Id:Date:From:Subject:Content-Type: MIME-Version; bh=SJnDFyBuVqeG8XqgUZ9fYcO33repFXg9NQdPWMH4szs=; b=P1LHxaHQgFa6 XggFz5sgwopuvDbPMarUfQNbuL3Ry2hrI7oItpWurcMJvydR8bXWsJ2XlOMFvaSCSjVSCMGGC5Qgp Hi+fkTlPintJLLgnskQJxvsMnqriJtO4V+pRrreB4ycPx9vIdnmZou4keTI+861/jUhXPDl+6/TEh z2IAdoPjBkd/AJdmQmvhYfzY6xooFyETdS7Mo1mjsAzs7okRBeiOfdV8joQ4eG1Ze4eeOZMkJhj6T BOqNKOP6CDNJIm9s0NuRolblNiWUGszw/e0NK3VrSmmgkqNnlQgu86NMpcGwEUJPzK7BL5Rxd+Zig KDmoXvwDgzvrGcblMT39kQ==; Received: from ch-demo-asa.virtuozzo.com ([130.117.225.8] helo=f0.sw.ru) by relay.virtuozzo.com with esmtp (Exim 4.96) (envelope-from ) id 1xP1zI-006gtM-1E; Thu, 05 Nov 2026 19:19:04 +0100 MIME-Version: 1.0 From: Konstantin Khorenko To: "Denis V. Lunev" In-Reply-To: <20261105145749.2643035-3-den@openvz.org> References: <20261105145749.2643035-1-den@openvz.org> <20261105145749.2643035-3-den@openvz.org> Date: Thu, 05 Nov 2026 19:19:02 +0100 Message-Id: <179390274229.2948524.12095886078781139789.b4-review@b4> X-Mailer: b4 0.16.0 X-Developer-Signature: v=1; a=openpgp-sha256; l=2664; i=khorenko@virtuozzo.com; h=from:subject:message-id; bh=lBZeT+lJYlLLSKP33JtENFWaI9YaG2u2EY4sRIvFxbs=; b=owEBbQKS/ZANAwAKAVGWCkf5YVwqAcsmYgBq7MiZUWyd78UCdNGd8lh571m38kCZxS4LBQouQ ev8T7Aa8C2JAjMEAAEKAB0WIQRWD23IPcXT0GO9CCxRlgpH+WFcKgUCauzImQAKCRBRlgpH+WFc KimiD/9Ww0sgMA6Ig/cW7YrJ2vrdeRlVPd1o0h6dhHtlZXDaXY+n9gC9Q3bB9U+zFEC+ciOJwpB web9lqjFlfyjq8F64TGpqRDQ5WWrwgQtKFUYorVK2cY7FVN2aH0c8fhe/gsi46uisCILAwyXAoR sj+GVZzaRNwfCYOBI8gG7rVsoNjNt8dlB0ie40cK6w650SPQjP+uvF6DTMbQ3nSYu8o5JmbcjyB NyPup9TNBgnqVffCKdGSw3OhXGncatHuWGqGuaszL/lWWZJf6cFjEtwEjXoI3p++Le477nDtr1a eV3yHyfv9JzSj1quD+1rw5ZfPzdWssLIRhRwrwP4VPfWNm055OaEPdx52Znl/L4MuOuebttY+f/ vfUO9Hh/CWSOTncefGQa+yizc+0MTpR3EehFGPupFQ2pV64khd5bh/FR81tVScXFcxvI9hX4zWt gRZoidUTDvigs1f4zsfm+pWLVikRLP6ZkcTdikPwLcM1eoub5ZVpWkimkW/E50HcwF69mkVA3LP mE7rALTYXDIlnrUY3llZoHQXIsYWB7OZeDj2p02Ysv7PdGs2fmlIHRm7yoNqgO59pCUlY+ySHXC 7s6b9KuxjNEWNU2n1Zq9TDWzBlTzukQ6wXcaMID3v7JtECFKjmx3unc2fVL6mIJPQOPMCaeh7Dj RSjE+khIRH8ysrw== X-Developer-Key: i=khorenko@virtuozzo.com; a=openpgp; fpr=560F6DC83DC5D3D063BD082C51960A47F9615C2A X-OZ-Fwd: true Cc: devel@openvz.org Subject: Re: [Devel] [PATCH hci-8.1 v2 2/3] dm-ploop: refuse flip_upper_deltas onto a lower delta smaller than the device 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 Applying with these fixes on my side: - paragraphs 1 and 2 of the commit message replaced with: A flip_upper_deltas after a grow of the device, with the lower delta left at its old size, makes a top delta whose header covers fewer entries than the delta below it. Unless a write rewrites BAT page 0 first, the stack no longer loads. When the grow added BAT clusters, a write past the old size can also put a BAT page onto a data cluster of that file. Today ploop_check_delta_before_flip() oopses on such a flip only when the grow added BAT pages, as its walk runs past the end of the BAT of the lower delta. A grow within the same BAT pages already gets through, and fixing the walk alone would let every such flip through. - paragraph 3: "Read the header of the lower delta on every flip, not only under PLOOP_DEBUG" became "Check the size of the lower delta outside PLOOP_DEBUG", and "a stack that ploop_add_delta() refuses on the next load" became "a top delta whose header covers fewer entries than the delta below it". On Thu, 05 Nov 2026 15:57:48 +0100, Denis V. Lunev wrote: > A flip_upper_deltas after a grow of the device, with the lower delta > left at its old size, makes a top delta whose header and BAT cover fewer > entries than the device. After resume the BAT writeback puts the grown > header into page 0 of that file and the BAT pages past its old size onto > its data clusters, and the image no longer opens. Only dirty BAT pages are written back, and page 0 gets dirty only from a write to its own clusters. BAT pages land on data only when the grow added BAT clusters. In your 1G -> 2G test the new top kept its old m_Size, and that is the EPROTO you saw. My v1 reply described it wrongly. > Today ploop_check_delta_before_flip() oopses on such a flip before it > gets that far, as its walk runs past the end of the BAT of the lower > delta. Fixing the walk alone would let the flip through. The old walk oopses only when the grow added BAT pages; a grow within the same pages returns 0 and the flip goes through today. > Read the header of the lower delta on every flip, not only under > PLOOP_DEBUG, and refuse with -EBADSLT when it has fewer BAT entries than The call reads and converts the whole BAT, as Sashiko said, and it already ran on every flip since PLOOP_DEBUG is always defined. Whether the flipped stack fails with EPROTO or EBADSLT depends on how the table length is set, so the new text names no errno. With that fixed: Reviewed-by: Konstantin Khorenko -- Konstantin Khorenko, Virtuozzo Linux Kernel Team _______________________________________________ Devel mailing list Devel@openvz.org https://lists.openvz.org/mailman/listinfo/devel