Lines Matching refs:bio

30 static void f2fs_read_end_io(struct bio *bio)  in f2fs_read_end_io()  argument
35 if (f2fs_bio_encrypted(bio)) { in f2fs_read_end_io()
36 if (bio->bi_error) { in f2fs_read_end_io()
37 f2fs_release_crypto_ctx(bio->bi_private); in f2fs_read_end_io()
39 f2fs_end_io_crypto_work(bio->bi_private, bio); in f2fs_read_end_io()
44 bio_for_each_segment_all(bvec, bio, i) { in f2fs_read_end_io()
47 if (!bio->bi_error) { in f2fs_read_end_io()
55 bio_put(bio); in f2fs_read_end_io()
58 static void f2fs_write_end_io(struct bio *bio) in f2fs_write_end_io() argument
60 struct f2fs_sb_info *sbi = bio->bi_private; in f2fs_write_end_io()
64 bio_for_each_segment_all(bvec, bio, i) { in f2fs_write_end_io()
69 if (unlikely(bio->bi_error)) { in f2fs_write_end_io()
82 bio_put(bio); in f2fs_write_end_io()
88 static struct bio *__bio_alloc(struct f2fs_sb_info *sbi, block_t blk_addr, in __bio_alloc()
91 struct bio *bio; in __bio_alloc() local
93 bio = f2fs_bio_alloc(npages); in __bio_alloc()
95 bio->bi_bdev = sbi->sb->s_bdev; in __bio_alloc()
96 bio->bi_iter.bi_sector = SECTOR_FROM_BLOCK(blk_addr); in __bio_alloc()
97 bio->bi_end_io = is_read ? f2fs_read_end_io : f2fs_write_end_io; in __bio_alloc()
98 bio->bi_private = is_read ? NULL : sbi; in __bio_alloc()
100 return bio; in __bio_alloc()
107 if (!io->bio) in __submit_merged_bio()
111 trace_f2fs_submit_read_bio(io->sbi->sb, fio, io->bio); in __submit_merged_bio()
113 trace_f2fs_submit_write_bio(io->sbi->sb, fio, io->bio); in __submit_merged_bio()
115 submit_bio(fio->rw, io->bio); in __submit_merged_bio()
116 io->bio = NULL; in __submit_merged_bio()
147 struct bio *bio; in f2fs_submit_page_bio() local
154 bio = __bio_alloc(fio->sbi, fio->blk_addr, 1, is_read_io(fio->rw)); in f2fs_submit_page_bio()
156 if (bio_add_page(bio, page, PAGE_CACHE_SIZE, 0) < PAGE_CACHE_SIZE) { in f2fs_submit_page_bio()
157 bio_put(bio); in f2fs_submit_page_bio()
161 submit_bio(fio->rw, bio); in f2fs_submit_page_bio()
182 if (io->bio && (io->last_block_in_bio != fio->blk_addr - 1 || in f2fs_submit_page_mbio()
186 if (io->bio == NULL) { in f2fs_submit_page_mbio()
189 io->bio = __bio_alloc(sbi, fio->blk_addr, bio_blocks, is_read); in f2fs_submit_page_mbio()
195 if (bio_add_page(io->bio, bio_page, PAGE_CACHE_SIZE, 0) < in f2fs_submit_page_mbio()
877 struct bio *bio = NULL; in f2fs_mpage_readpages() local
955 if (bio && (last_block_in_bio != block_nr - 1)) { in f2fs_mpage_readpages()
957 submit_bio(READ, bio); in f2fs_mpage_readpages()
958 bio = NULL; in f2fs_mpage_readpages()
960 if (bio == NULL) { in f2fs_mpage_readpages()
975 bio = bio_alloc(GFP_KERNEL, in f2fs_mpage_readpages()
977 if (!bio) { in f2fs_mpage_readpages()
982 bio->bi_bdev = bdev; in f2fs_mpage_readpages()
983 bio->bi_iter.bi_sector = SECTOR_FROM_BLOCK(block_nr); in f2fs_mpage_readpages()
984 bio->bi_end_io = f2fs_read_end_io; in f2fs_mpage_readpages()
985 bio->bi_private = ctx; in f2fs_mpage_readpages()
988 if (bio_add_page(bio, page, blocksize, 0) < blocksize) in f2fs_mpage_readpages()
999 if (bio) { in f2fs_mpage_readpages()
1000 submit_bio(READ, bio); in f2fs_mpage_readpages()
1001 bio = NULL; in f2fs_mpage_readpages()
1009 if (bio) in f2fs_mpage_readpages()
1010 submit_bio(READ, bio); in f2fs_mpage_readpages()