From: "Denis V. Lunev" <den@openvz.org>
To: andrey.zhadchenko@virtuozzo.com
Cc: devel@openvz.org
Subject: [Devel] [PATCH hci-8.1 0/2] dm-ploop: fix flip_upper_deltas panicking the host in its pre-flip check
Date: Wed, 4 Nov 2026 22:46:33 +0100 [thread overview]
Message-ID: <20261104214635.2063009-1-den@openvz.org> (raw)
ploop_check_delta_before_flip() runs on every flip_upper_deltas, as
PLOOP_DEBUG is always defined in dm-ploop-cmd.c, and both of its ways
out of the walk are broken (VSTOR-153445):
- patch 1: when it finds a cluster both deltas map, it returns -EEXIST
with two md_locks held and interrupts disabled. The next pio on that
BAT page spins on the lock forever, and the host panics on a hard
lockup;
- patch 2: the walk never stops at the end of the BAT of the lower
delta, so once the device has grown past it the flip oopses on a NULL
md page.
Neither is reached through the ploop library. Its reverse merge, the
only sender of the flip, grows the lower delta to the size of the top
and clears the clusters both deltas map before it flips, and a device it
mounted has the lower delta read-only, which the flip refuses with
EACCES before the check. Both take a flip of a table built with the
lower delta read-write, so VSTOR-153445 has no RK for 8.0. This is the
fix the v2 cover letter of "dm-ploop: fix the pio submission stop around
cmds" said would be sent separately.
Tested on dev-cl04, stock 6.12.0-211.52.1.22.11.vz10, dm-ploop built
out of tree with the series on top of the applied dm-ploop v2:
- a chain whose top delta overwrote clusters of the base and a direct
flip_upper_deltas: the stock module returns to dmsetup in atomic
context ("BUG: scheduling while atomic"), and a read of the device
then panics the host with "Hard LOCKUP". With the series the message
fails with EEXIST and the device keeps working;
- set_noresume, suspend, a grow to 2T and flip_upper_deltas: the stock
module oopses at ploop_check_delta_before_flip+0x86, with the series
the flip completes and the images keep their data;
- the ploop pytest suite, ploop format, passes.
Denis V. Lunev (2):
dm-ploop: fix flip_upper_deltas returning with two md_locks held
dm-ploop: fix flip_upper_deltas walking past the BAT of the lower
delta
drivers/md/dm-ploop-cmd.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
base-commit: 1f21db982845109040d1feb279e9ee34f8e6f065
--
2.53.0
_______________________________________________
Devel mailing list
Devel@openvz.org
https://lists.openvz.org/mailman/listinfo/devel
next reply other threads:[~2026-11-04 21:47 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-11-04 21:46 Denis V. Lunev [this message]
2026-11-04 21:46 ` [Devel] [PATCH hci-8.1 1/2] dm-ploop: fix flip_upper_deltas returning with two md_locks held Denis V. Lunev
2026-11-04 21:50 ` no-reply
2026-11-04 21:46 ` [Devel] [PATCH hci-8.1 2/2] dm-ploop: fix flip_upper_deltas walking past the BAT of the lower delta Denis V. Lunev
2026-11-04 21:50 ` no-reply
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20261104214635.2063009-1-den@openvz.org \
--to=den@openvz.org \
--cc=andrey.zhadchenko@virtuozzo.com \
--cc=devel@openvz.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.