• Home
  • Raw
  • Download

Lines Matching refs:io

162 static int ext4_end_io(ext4_io_end_t *io)  in ext4_end_io()  argument
164 struct inode *inode = io->inode; in ext4_end_io()
165 loff_t offset = io->offset; in ext4_end_io()
166 ssize_t size = io->size; in ext4_end_io()
167 handle_t *handle = io->handle; in ext4_end_io()
172 io, inode->i_ino, io->list.next, io->list.prev); in ext4_end_io()
174 io->handle = NULL; /* Following call will use up the handle */ in ext4_end_io()
183 ext4_clear_io_unwritten_flag(io); in ext4_end_io()
184 ext4_release_io_end(io); in ext4_end_io()
192 ext4_io_end_t *io, *io0, *io1; in dump_completed_IO() local
198 list_for_each_entry(io, head, list) { in dump_completed_IO()
199 cur = &io->list; in dump_completed_IO()
206 io, inode->i_ino, io0, io1); in dump_completed_IO()
233 ext4_io_end_t *io; in ext4_do_flush_completed_IO() local
245 io = list_entry(unwritten.next, ext4_io_end_t, list); in ext4_do_flush_completed_IO()
246 BUG_ON(!(io->flag & EXT4_IO_END_UNWRITTEN)); in ext4_do_flush_completed_IO()
247 list_del_init(&io->list); in ext4_do_flush_completed_IO()
249 err = ext4_end_io(io); in ext4_do_flush_completed_IO()
268 ext4_io_end_t *io = kmem_cache_zalloc(io_end_cachep, flags); in ext4_init_io_end() local
269 if (io) { in ext4_init_io_end()
271 io->inode = inode; in ext4_init_io_end()
272 INIT_LIST_HEAD(&io->list); in ext4_init_io_end()
273 atomic_set(&io->count, 1); in ext4_init_io_end()
275 return io; in ext4_init_io_end()
353 void ext4_io_submit(struct ext4_io_submit *io) in ext4_io_submit() argument
355 struct bio *bio = io->io_bio; in ext4_io_submit()
358 int io_op = io->io_wbc->sync_mode == WB_SYNC_ALL ? in ext4_io_submit()
360 bio_get(io->io_bio); in ext4_io_submit()
361 submit_bio(io_op, io->io_bio); in ext4_io_submit()
362 bio_put(io->io_bio); in ext4_io_submit()
364 io->io_bio = NULL; in ext4_io_submit()
367 void ext4_io_submit_init(struct ext4_io_submit *io, in ext4_io_submit_init() argument
370 io->io_wbc = wbc; in ext4_io_submit_init()
371 io->io_bio = NULL; in ext4_io_submit_init()
372 io->io_end = NULL; in ext4_io_submit_init()
375 static int io_submit_init_bio(struct ext4_io_submit *io, in io_submit_init_bio() argument
383 wbc_init_bio(io->io_wbc, bio); in io_submit_init_bio()
387 bio->bi_private = ext4_get_io_end(io->io_end); in io_submit_init_bio()
388 io->io_bio = bio; in io_submit_init_bio()
389 io->io_next_block = bh->b_blocknr; in io_submit_init_bio()
393 static int io_submit_add_bh(struct ext4_io_submit *io, in io_submit_add_bh() argument
400 if (io->io_bio && bh->b_blocknr != io->io_next_block) { in io_submit_add_bh()
402 ext4_io_submit(io); in io_submit_add_bh()
404 if (io->io_bio == NULL) { in io_submit_add_bh()
405 ret = io_submit_init_bio(io, bh); in io_submit_add_bh()
409 ret = bio_add_page(io->io_bio, page, bh->b_size, bh_offset(bh)); in io_submit_add_bh()
412 wbc_account_io(io->io_wbc, page, bh->b_size); in io_submit_add_bh()
413 io->io_next_block++; in io_submit_add_bh()
417 int ext4_bio_write_page(struct ext4_io_submit *io, in ext4_bio_write_page() argument
473 if (io->io_bio) in ext4_bio_write_page()
474 ext4_io_submit(io); in ext4_bio_write_page()
496 if (io->io_bio) { in ext4_bio_write_page()
497 ext4_io_submit(io); in ext4_bio_write_page()
512 ret = io_submit_add_bh(io, inode, in ext4_bio_write_page()