Thread (16 messages) 16 messages, 3 authors, 2025-07-31

Re: [PATCHv3 1/7] blk-mq: introduce blk_map_iter

From: Kanchan Joshi <hidden>
Date: 2025-07-30 08:18:48
Also in: linux-nvme

On 7/29/2025 8:04 PM, Keith Busch wrote:
quoted hunk ↗ jump to hunk
@@ -39,12 +33,11 @@ static bool blk_map_iter_next(struct request *req, struct req_iterator *iter,
  	 * one could be merged into it.  This typically happens when moving to
  	 * the next bio, but some callers also don't pack bvecs tight.
  	 */
-	while (!iter->iter.bi_size || !iter->iter.bi_bvec_done) {
+	while (!iter->iter.bi_size ||
+	       (!iter->iter.bi_bvec_done && iter->bio->bi_next)) {
  		struct bio_vec next;
  
  		if (!iter->iter.bi_size) {
-			if (!iter->bio->bi_next)
-				break;
  			iter->bio = iter->bio->bi_next;
  			iter->iter = iter->bio->bi_iter;
This can crash here if we come inside the loop because 
iter->iter.bi_size is 0
and if this is the last bio i.e., iter->bio->bi_next is NULL?


Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help