verify: fix verify starvation with norandommap

When norandommap is set, io_pieces are stored in an RB tree sorted by
offset. get_next_verify() only checked rb_first() for a completed
entry. If the lowest-offset IO was still in-flight, it returned
"nothing" even though completed entries existed at higher offsets. This
starved verification reads during verify_backlog processing, causing
severe read/write bandwidth asymmetry (e.g. 40 MiB/s read vs 700 MiB/s
write) and unbounded io_piece accumulation in the tree.

Fix this by walking the tree with rb_next() to find the first completed
entry instead of giving up at rb_first().

This does not affect the linked-list path used when norandommap is not
set, since list ordering matches submission order.

Signed-off-by: Yehor Malikov <Yehor.Malikov@solidigm.com>
1 file changed