Lines Matching refs:io
301 static void __submit_merged_bio(struct f2fs_bio_info *io) in __submit_merged_bio() argument
303 struct f2fs_io_info *fio = &io->fio; in __submit_merged_bio()
305 if (!io->bio) in __submit_merged_bio()
308 bio_set_op_attrs(io->bio, fio->op, fio->op_flags); in __submit_merged_bio()
311 trace_f2fs_prepare_read_bio(io->sbi->sb, fio->type, io->bio); in __submit_merged_bio()
313 trace_f2fs_prepare_write_bio(io->sbi->sb, fio->type, io->bio); in __submit_merged_bio()
315 __submit_bio(io->sbi, io->bio, fio->type); in __submit_merged_bio()
316 io->bio = NULL; in __submit_merged_bio()
319 static bool __has_merged_page(struct f2fs_bio_info *io, in __has_merged_page() argument
326 if (!io->bio) in __has_merged_page()
332 bio_for_each_segment_all(bvec, io->bio, i) { in __has_merged_page()
356 struct f2fs_bio_info *io; in has_merged_page() local
360 io = sbi->write_io[btype] + temp; in has_merged_page()
362 down_read(&io->io_rwsem); in has_merged_page()
363 ret = __has_merged_page(io, inode, ino, idx); in has_merged_page()
364 up_read(&io->io_rwsem); in has_merged_page()
377 struct f2fs_bio_info *io = sbi->write_io[btype] + temp; in __f2fs_submit_merged_write() local
379 down_write(&io->io_rwsem); in __f2fs_submit_merged_write()
383 io->fio.type = META_FLUSH; in __f2fs_submit_merged_write()
384 io->fio.op = REQ_OP_WRITE; in __f2fs_submit_merged_write()
385 io->fio.op_flags = REQ_META | REQ_PRIO; in __f2fs_submit_merged_write()
387 io->fio.op_flags |= WRITE_FLUSH | REQ_FUA; in __f2fs_submit_merged_write()
389 __submit_merged_bio(io); in __f2fs_submit_merged_write()
390 up_write(&io->io_rwsem); in __f2fs_submit_merged_write()
466 struct f2fs_bio_info *io = sbi->write_io[btype] + fio->temp; in f2fs_submit_page_write() local
472 down_write(&io->io_rwsem); in f2fs_submit_page_write()
475 spin_lock(&io->io_lock); in f2fs_submit_page_write()
476 if (list_empty(&io->io_list)) { in f2fs_submit_page_write()
477 spin_unlock(&io->io_lock); in f2fs_submit_page_write()
480 fio = list_first_entry(&io->io_list, in f2fs_submit_page_write()
483 spin_unlock(&io->io_lock); in f2fs_submit_page_write()
497 if (io->bio && (io->last_block_in_bio != fio->new_blkaddr - 1 || in f2fs_submit_page_write()
498 (io->fio.op != fio->op || io->fio.op_flags != fio->op_flags) || in f2fs_submit_page_write()
499 !__same_bdev(sbi, fio->new_blkaddr, io->bio))) in f2fs_submit_page_write()
500 __submit_merged_bio(io); in f2fs_submit_page_write()
502 if (io->bio == NULL) { in f2fs_submit_page_write()
509 io->bio = __bio_alloc(sbi, fio->new_blkaddr, fio->io_wbc, in f2fs_submit_page_write()
512 io->fio = *fio; in f2fs_submit_page_write()
515 if (bio_add_page(io->bio, bio_page, PAGE_SIZE, 0) < PAGE_SIZE) { in f2fs_submit_page_write()
516 __submit_merged_bio(io); in f2fs_submit_page_write()
523 io->last_block_in_bio = fio->new_blkaddr; in f2fs_submit_page_write()
531 up_write(&io->io_rwsem); in f2fs_submit_page_write()