Lines Matching refs:args
159 static struct bio *do_mpage_readpage(struct mpage_readpage_args *args)
161 struct folio *folio = args->folio;
166 struct buffer_head *map_bh = &args->map_bh;
184 if (args->is_readahead) {
193 last_block = block_in_file + args->nr_pages * blocks_per_page;
204 block_in_file > args->first_logical_block &&
205 block_in_file < (args->first_logical_block + nblocks)) {
206 unsigned map_offset = block_in_file - args->first_logical_block;
234 if (args->get_block(inode, block_in_file, map_bh, 0))
236 args->first_logical_block = block_in_file;
293 if (args->bio && (args->last_block_in_bio != blocks[0] - 1))
294 args->bio = mpage_bio_submit_read(args->bio);
297 if (args->bio == NULL) {
298 args->bio = bio_alloc(bdev, bio_max_segs(args->nr_pages), opf,
300 if (args->bio == NULL)
302 args->bio->bi_iter.bi_sector = blocks[0] << (blkbits - 9);
306 if (!bio_add_folio(args->bio, folio, length, 0)) {
307 args->bio = mpage_bio_submit_read(args->bio);
311 relative_block = block_in_file - args->first_logical_block;
315 args->bio = mpage_bio_submit_read(args->bio);
317 args->last_block_in_bio = blocks[blocks_per_page - 1];
319 return args->bio;
322 if (args->bio)
323 args->bio = mpage_bio_submit_read(args->bio);
325 block_read_full_folio(folio, args->get_block);
373 struct mpage_readpage_args args = {
380 args.folio = folio;
381 args.nr_pages = readahead_count(rac);
382 args.bio = do_mpage_readpage(&args);
384 if (args.bio)
385 mpage_bio_submit_read(args.bio);
394 struct mpage_readpage_args args = {
400 args.bio = do_mpage_readpage(&args);
401 if (args.bio)
402 mpage_bio_submit_read(args.bio);