ublk: don't mutate struct bio_vec in iteration
authorCaleb Sander Mateos <csander@purestorage.com>
Tue, 9 Dec 2025 03:14:23 +0000 (20:14 -0700)
committerJens Axboe <axboe@kernel.dk>
Tue, 9 Dec 2025 17:20:18 +0000 (10:20 -0700)
commitdb339b4067eccb7fa3d9787d5d3ab5d466fd9efa
treee22f25413fa7a98bf0c418e78e2d3aa53a9043ab
parentcfdeb588ae1dff5d52da37d2797d0203e8605480
ublk: don't mutate struct bio_vec in iteration

__bio_for_each_segment() uses the returned struct bio_vec's bv_len field
to advance the struct bvec_iter at the end of each loop iteration. So
it's incorrect to modify it during the loop. Don't assign to bv_len (or
bv_offset, for that matter) in ublk_copy_user_pages().

Signed-off-by: Caleb Sander Mateos <csander@purestorage.com>
Fixes: e87d66ab27ac ("ublk: use rq_for_each_segment() for user copy")
Reviewed-by: Ming Lei <ming.lei@redhat.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
drivers/block/ublk_drv.c