In __blkdev_issue_rw(): > + bio = blk_next_bio(bio, nr_pages, gfp_mask); Doesn't this already submits the bio even before the pages are added? > + error = __blkdev_issue_rw(b, buf, sector, nr_sects, op, opf, mask, &bio); > + if (!error && bio) { > + error = submit_bio_wait(bio); And then the bio is submitted again in blkdev_issue_rw()... Or do I understand it wrong?