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.
Thanks for the review. Will fix... Jeff -- To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html