On Mon, Jun 11, 2018 at 10:19:38AM -0700, Christoph Hellwig wrote: > I think both callers would be just as easy to understand by using > nth_page() instead of these magic helpers. E.g. for guard_bio_eod: > > unsigned offset = (bv.bv_offset + bv.bv_len); > struct page *page = nth_page(bv.bv_page, offset); The above lines should have been written as: struct page *page = nth_page(bv.bv_page, offset / PAGE_SIZE) but this way may cause 'page' points to the next page of bv's last page if offset == N * PAGE_SIZE. Thanks, Ming