First: as mentioned in the previous patches I really hate the name scheme with the _sp and _mp postfixes. To be clear and understandable we should always name the versions that iterate over segments *segment* and the ones that iterate over pages *page*. To make sure we have a clean compile break for code using the old _segment name I'd suggest to move to pass the bvec_iter argument by reference, which is the right thing to do anyway. As far as the implementation goes I don't think we actually need to pass the mp argument down. Instead we always call the full-segment version of bvec_iter_len / __bvec_iter_advance and then have an inner loop that moves the fake bvecs forward inside each full-segment one - that is implement the per-page version on top of the per-segment one. -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>