On Thu, May 24, 2018 at 12:43:06PM -0700, Andrew Morton wrote: > On Thu, 24 May 2018 10:02:52 -0600 Jens Axboe <axboe@xxxxxxxxx> wrote: > > do_mpage_readpage(struct bio *bio, struct page *page, unsigned nr_pages, > > sector_t *last_block_in_bio, struct buffer_head *map_bh, > > unsigned long *first_logical_block, get_block_t get_block, > > - gfp_t gfp) > > + gfp_t gfp, bool is_readahead) > > That's a lot of arguments. struct mpage_args args = { .bio = NULL, .first_logical_block = 0, .last_block_in_bio = 0, .is_readahead = true, .map_bh = { .b_state = 0; .b_size = 0; }, .get_block = get_block, .gfp = readahead_gfp_mask(mapping); }; ... do_mpage_readpages(&args, page, nr_pages - page_idx); better than inlining?