On 04/03/2009 12:58 PM, Jeff Garzik wrote: > Jens Axboe wrote: >> This wont work, GFP_NOIO inside the queue lock. You are also only >> cloning the front bio, what happens if you have > 1 bio on the request? >> You seem to dequeue the request and complete all of it, regardless of >> whether bio->bi_size == blk_rq_bytes(rq). I'm assuming you have to clone >> because of how the osd_req_{read,write} works, so I'd suggest storing >> the byte size in your osdblk_request and only completing that in >> osdblk_end_request(). Then do a rq_for_each_bio() look in there, and >> only dequeue if you manage to start an osd request for each of them, >> THEN moving on to the next request. > There is nothing preventing from issuing a linked bio list. The only thing is that osd_read/write looks at the first bio for total size. If the first bio->bi_size does not specify the full length of the chain then we should add another parameter to osd_read/write for that. The original idea was to specifically allow chained bios. Please advise? > Thanks for the review. Will fix... > > Jeff > Thanks Boaz -- To unsubscribe from this list: send the line "unsubscribe linux-scsi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html