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 89BC580474 for ; Tue, 27 Oct 2026 16:46:48 +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 69RGjUTH030842; Tue, 27 Oct 2026 19:45:31 +0300 DKIM-Filter: OpenDKIM Filter v2.11.0 mail.openvz.org 69RGjUTH030842 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=openvz.org; s=default; t=1793119532; bh=57dKzdVisQa0tj+EtbljyJkLAbGCkeGwoGWS9FLkUzs=; h=From:To:Date:In-Reply-To:References:Cc:Subject:List-Id: List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe; b=d088BeQQ9qXzkZMmMLYlnfZdOFTk/FWX4zW4FMmDwlt7i5wSHCSawCbTKqIi6vh2X siTdOy/wGSt12LkXyxIhw6wQPtC19fUL1EhssZKtWyfKnAEoRxXXeOyZ/pdSKR7jgt tUcPlUi/wGlTxUrJXJduv7XTXOkQ9D0ZGT2x5C4bXcMzEUmW0a3b8w4BS/2fNHUTS/ LlchAYvEmxTDgQaMX0/6NCDJizSBMN8Ct1Er8g4muf0NaLP7pCLueMHb6VhBD1mSbi oohH+9zok+zk+UGyazJPO/UnonoXIN18JQ3DJEKCN5i0Gtz34bxdlvukAbsJzuIEG4 ekKSo+wPR6IDg== Received: from mail-ed1-f72.google.com (mail-ed1-f72.google.com [209.85.208.72]) by mail.openvz.org (8.14.4/8.14.4) with ESMTP id 69RGjT8q030838 (version=TLSv1/SSLv3 cipher=AES128-GCM-SHA256 bits=128 verify=FAIL) for ; Tue, 27 Oct 2026 19:45:29 +0300 DKIM-Filter: OpenDKIM Filter v2.11.0 mail.openvz.org 69RGjT8q030838 Authentication-Results: mail.openvz.org; dkim=pass (2048-bit key) header.d=openvz.org header.i=@openvz.org header.b="sPkiK3Af" Received: by mail-ed1-f72.google.com with SMTP id 4fb4d7f45d1cf-6b1c6f567caso92583a12.2 for ; Tue, 27 Oct 2026 09:45:29 -0700 (PDT) X-Gm-Message-State: AFq9FYK8jTOUbKfH9JApi0zf7k9OMW654F+CchMLB7gMaB6KXoqoYtYH ALeYRTeTllnsBTqRxpw9wqlnv85orC2mMMzW+CexkJu+LzKRwg+WDA7EhrYVkXbESTYWz47b3GX uXAIS5O/TKscIGfR08Pt3dHq1kh7p2EmHO9ulCUNaHFUWUbU2M/6LdA== X-Gm-Gg: AYBFou2+SNr/fhrx/Nc+nbe4BcetBYveeUuNhxYPjD4zdry+YddTHbql2tAhOIyvQZD VsSdfg0b7HpeKq4NB2yrN6D1Tu/G9Ij/BTjAyUVz9SmR+8Y12NZQ4/NCfUr/Mgq6px/sSjy3/5x c4JCqfKs9F/ELpfDWIy2Ts6+5/hfpR8VgiabVqPJPV2QRNECJgZ2dWyQEVp446i/ms5jrgfvfeK Fc2VRnDWeWOdSu3f0+5JWjN9xKixw1EcvpZg+GoATnKPePrV0PxsIPzNEz+ObeXMLo9M6Mvpy+b Mk/oVnkgEw== X-Received: by 2002:a05:600c:314f:b0:4a7:76fa:87e9 with SMTP id 5b1f17b1804b1-4a776fa87f9mr83085355e9.21.1793118785723; Tue, 27 Oct 2026 09:33:05 -0700 (PDT) X-Received: by 2002:a05:600c:314f:b0:4a7:76fa:87e9 with SMTP id 5b1f17b1804b1-4a776fa87f9mr83084785e9.21.1793118785292; Tue, 27 Oct 2026 09:33:05 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1793118785; cv=none; d=google.com; s=arc-20260327; b=ftnx3fZCTtk3UCz4juVDbHTuFNuTxJfnqg5Qw4qR/L1WKNmcud34DLNWtFVHdYHab9 dLNEKu/E8Tau7E/EoFtitHd1VdalARGcPIS2Qsn9zkIcKl7GjsDVW/J8XQoCr2motLAV 4HrD71+zzWaHHjIsmMgT/x5axALiuQ1lS2S7mBpk37Zqr3btVvKoDWOuGVv91lYyD4Xm g/ApVSedwFNCCISKEfQYMmxgwTFCi7kn+MgXp9NUa6bJ6Z5S9nXUvxAp4P7g18P001VS dwJrJCjKDlnS5IYZUVQ4mx7YIw2nnTjDvejKRxqLAJkS4uuGdNpyjaI5NoBQrBFVC2GW 7q7A== 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=CsUNIn5Rlt4dTU8ffjhtMMsSXTQdxzMdAs8PJAA19kU=; fh=Kr/R+ZQiC/tid3qUs5C3px+AHPSuipOrrdrDcZfSlMY=; b=cQKBk6bOKNgFqS8Ew31r5Eahj4zUPoHE3UD70yARdMDFBBKMtd81TjB/W8GuzR5/0T 9BYSa/CIyaO9W2LoQNyo4a+QgISX7rdxk5oNA4+5rsC8hPzy/EORtGRTXyNt0m1AHVom y4EjyXgMapDQ+LHgs407Cinp6vRzYP85J4kOcF7EiOK02kNtgviESJGmxa07o+vImrMR f3XDWklvyQMvdxbR1DYy2hmQBzrU7sTo8v/HvMcoA3RPq+UAj1CWdxTcut5P4vgbEGyu 8ljSpbgOdlFr4jGYLucWFN2zEOgx9P+8g6RorUO9NL6b7p4iJnORAF+vjxgQNX85mLLc NRrw==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@openvz.org header.s=google header.b=sPkiK3Af; 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-4a35a2c5288sor16659585e9.13.2026.10.27.09.33.05 for (Google Transport Security); Tue, 27 Oct 2026 09:33:05 -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=sPkiK3Af; 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=1793118785; x=1793723585; 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=CsUNIn5Rlt4dTU8ffjhtMMsSXTQdxzMdAs8PJAA19kU=; b=sPkiK3Af3mEfnroZB1TuUqOhBl0FQRRQEVmBkCeysVEN8ewx+mzlrsghc4PHaubSPy b1BdA/ir+oNmeD7hZJ6lAtBuLGx3leiZkJqHTYOvBFuheijvqXs3LHgXNPeu+HcOmKp2 M8TEmeRl2FM15GbY6d6zwB2arzVHjI/byfr8p8RTNMmfo/B1x1PKWNU0B1+Rg73HE/LZ FBYP5xM3DQ8E9O7dLTVRiXu3Hn+DzrAET8dXfMhXOeCZDaRP3xkdVuvEQ/cXUDmFVT9x tTJ2ha9GqlYyDoUfLPEiQTDJKPUXHzLqaLPiJDfYPiaue3TKFreX/jeL4vyWRTSKEq5a pvzg== X-Received: by 2002:a05:600c:8183:b0:4a2:8c5:5f2 with SMTP id 5b1f17b1804b1-4a35ac99b41mr175692755e9.5.1793118784823; Tue, 27 Oct 2026 09:33:04 -0700 (PDT) Received: from athena.sw.ru ([2a06:5b06:b600:300:a5e9:5d2:969c:16de]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4a9301b689asm870315e9.7.2026.10.27.09.33.04 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 27 Oct 2026 09:33:04 -0700 (PDT) From: "Denis V. Lunev" To: andrey.zhadchenko@virtuozzo.com Date: Tue, 27 Oct 2026 17:32:58 +0100 Message-ID: <20261027163300.2166639-3-den@openvz.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20261027163300.2166639-1-den@openvz.org> References: <20261027163300.2166639-1-den@openvz.org> MIME-Version: 1.0 X-OZ-Fwd: true Cc: devel@openvz.org Subject: [Devel] [PATCH hci-8.1 2/3] dm-ploop: renumber BAT levels when the latest snapshot is merged 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 ploop_merge_latest_snapshot() drops the delta below the top one and moves the top delta down a level, but leaves bat_levels alone. Every cluster of the top delta then sits one level above the new top. Checks done with "< top" do not notice, but the flip of the upper deltas compares levels for equality and leaves these entries alone. After the flip they are still taken for the top delta, so their I/O goes to the delta that has just become the top one, at offsets that belong to the other file. An ALLOC or RELOC writeback resets the level of every entry it writes back, which hid this for the pages that happened to get one. Lower the levels above the dropped delta, as notify_delta_merged() does for a delta merged from userspace. Fixes: 6ddad5a4d226 ("dm-ploop: Add ploop target driver") https://virtuozzo.atlassian.net/browse/VSTOR-151979 Signed-off-by: Denis V. Lunev Feature: dm-ploop: ploop target driver --- drivers/md/dm-ploop-cmd.c | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/drivers/md/dm-ploop-cmd.c b/drivers/md/dm-ploop-cmd.c index 5fa78e6cff9a..cfbba9b3e234 100644 --- a/drivers/md/dm-ploop-cmd.c +++ b/drivers/md/dm-ploop-cmd.c @@ -721,6 +721,27 @@ static int ploop_process_merge_latest_snapshot(struct ploop *ploop) } ALLOW_ERROR_INJECTION(ploop_process_merge_latest_snapshot, ERRNO); +static void ploop_renumber_levels_above(struct ploop *ploop, u8 level) +{ + u32 i, end, *bat_entries; + struct md_page *md; + struct rb_node *node; + unsigned long flags; + + ploop_for_each_md_page(ploop, md, node) { + ploop_init_be_iter(ploop, md->id, &i, &end); + bat_entries = md->kmpage; + + spin_lock_irqsave(&md->md_lock, flags); /* write */ + for (; i <= end; i++) { + if (READ_ONCE(bat_entries[i]) != BAT_ENTRY_NONE && + READ_ONCE(md->bat_levels[i]) > level) + md->bat_levels[i]--; + } + spin_unlock_irqrestore(&md->md_lock, flags); + } +} + static int ploop_merge_latest_snapshot(struct ploop *ploop) { u8 level; @@ -748,6 +769,7 @@ static int ploop_merge_latest_snapshot(struct ploop *ploop) ploop->deltas[level] = ploop->deltas[level + 1]; ploop->nr_deltas--; + ploop_renumber_levels_above(ploop, level); ploop_resume_submitting_pios(ploop); out: -- 2.53.0 _______________________________________________ Devel mailing list Devel@openvz.org https://lists.openvz.org/mailman/listinfo/devel