From: Rusty Russell Looks like an obvious typo. Works fine if "bio" is the name of the iterator. --- include/linux/blkdev.h | 2 +- 1 files changed, 1 insertion(+), 1 deletion(-) diff -puN include/linux/blkdev.h~rq_for_each_bio-fix-again include/linux/blkdev.h --- 25/include/linux/blkdev.h~rq_for_each_bio-fix-again 2004-01-21 23:22:10.000000000 -0800 +++ 25-akpm/include/linux/blkdev.h 2004-01-21 23:22:10.000000000 -0800 @@ -485,7 +485,7 @@ static inline void blk_queue_bounce(requ #define rq_for_each_bio(_bio, rq) \ if ((rq->bio)) \ - for (_bio = (rq)->bio; _bio; _bio = bio->bi_next) + for (_bio = (rq)->bio; _bio; _bio = _bio->bi_next) struct sec_size { unsigned block_size; _