[Devel] [PATCH hci-8.1 v3 4/5] dm-qcow2: fix SEEK_HOLE/SEEK_DATA hanging after a failed metadata read

no-reply at sashiko.virtuozzo.com no-reply at sashiko.virtuozzo.com
Wed Nov 4 21:55:10 MSK 2026


> From: Denis V. Lunev <den at openvz.org>
> 
> qcow2_llseek_hole_qio() parks its seek qio on an md page that is not
> loaded yet and sleeps until the qio is dispatched to QLIST_SEEK, where
> process_seek_qios() completes it. When the page read fails,
> do_md_page_read_complete() ends the waiting qios instead. A seek qio
> has no endio_cb, so nothing wakes the walk, and the lseek() caller
> sleeps uninterruptibly forever while it holds seek_rwsem: the next
> merge_backward complete and every target message after it hang under
> ctl_mutex as well.
> 
> Complete the seek from an endio_cb and return the error the qio was
> ended with.
> 
> Fixes: 412d5a4f7bf1 ("dm/dm-qcow2: add llseek_hole")
> Reported-by: Konstantin Khorenko <khorenko at virtuozzo.com>
> https://virtuozzo.atlassian.net/browse/VSTOR-153422
> Feature: dm-qcow2: block device over QCOW2 files driver
> Signed-off-by: Denis V. Lunev <den at openvz.org>

Sashiko has reviewed this patch and found no issues. It looks great!

-- 
Sashiko AI review · https://sashiko.vzint.dev/#/patchset/20261104180105.1807820-1-den@openvz.org?part=4




More information about the Devel mailing list