Searched refs:io_end (Results 1 - 7 of 7) sorted by relevance

/linux-4.4.14/fs/ext4/
H A Dpage-io.c124 static void ext4_release_io_end(ext4_io_end_t *io_end) ext4_release_io_end() argument
128 BUG_ON(!list_empty(&io_end->list)); ext4_release_io_end()
129 BUG_ON(io_end->flag & EXT4_IO_END_UNWRITTEN); ext4_release_io_end()
130 WARN_ON(io_end->handle); ext4_release_io_end()
132 if (atomic_dec_and_test(&EXT4_I(io_end->inode)->i_ioend_count)) ext4_release_io_end()
133 wake_up_all(ext4_ioend_wq(io_end->inode)); ext4_release_io_end()
135 for (bio = io_end->bio; bio; bio = next_bio) { ext4_release_io_end()
140 kmem_cache_free(io_end_cachep, io_end); ext4_release_io_end()
143 static void ext4_clear_io_unwritten_flag(ext4_io_end_t *io_end) ext4_clear_io_unwritten_flag() argument
145 struct inode *inode = io_end->inode; ext4_clear_io_unwritten_flag()
147 io_end->flag &= ~EXT4_IO_END_UNWRITTEN; ext4_clear_io_unwritten_flag()
210 /* Add the io_end to per-inode completed end_io list. */ ext4_add_complete_io()
211 static void ext4_add_complete_io(ext4_io_end_t *io_end) ext4_add_complete_io() argument
213 struct ext4_inode_info *ei = EXT4_I(io_end->inode); ext4_add_complete_io()
214 struct ext4_sb_info *sbi = EXT4_SB(io_end->inode->i_sb); ext4_add_complete_io()
219 WARN_ON(!(io_end->flag & EXT4_IO_END_UNWRITTEN)); ext4_add_complete_io()
220 WARN_ON(!io_end->handle && sbi->s_journal); ext4_add_complete_io()
225 list_add_tail(&io_end->list, &ei->i_rsv_conversion_list); ext4_add_complete_io()
277 void ext4_put_io_end_defer(ext4_io_end_t *io_end) ext4_put_io_end_defer() argument
279 if (atomic_dec_and_test(&io_end->count)) { ext4_put_io_end_defer()
280 if (!(io_end->flag & EXT4_IO_END_UNWRITTEN) || !io_end->size) { ext4_put_io_end_defer()
281 ext4_release_io_end(io_end); ext4_put_io_end_defer()
284 ext4_add_complete_io(io_end); ext4_put_io_end_defer()
288 int ext4_put_io_end(ext4_io_end_t *io_end) ext4_put_io_end() argument
292 if (atomic_dec_and_test(&io_end->count)) { ext4_put_io_end()
293 if (io_end->flag & EXT4_IO_END_UNWRITTEN) { ext4_put_io_end()
294 err = ext4_convert_unwritten_extents(io_end->handle, ext4_put_io_end()
295 io_end->inode, io_end->offset, ext4_put_io_end()
296 io_end->size); ext4_put_io_end()
297 io_end->handle = NULL; ext4_put_io_end()
298 ext4_clear_io_unwritten_flag(io_end); ext4_put_io_end()
300 ext4_release_io_end(io_end); ext4_put_io_end()
305 ext4_io_end_t *ext4_get_io_end(ext4_io_end_t *io_end) ext4_get_io_end() argument
307 atomic_inc(&io_end->count); ext4_get_io_end()
308 return io_end; ext4_get_io_end()
314 ext4_io_end_t *io_end = bio->bi_private; ext4_end_bio() local
317 BUG_ON(!io_end); ext4_end_bio()
321 struct inode *inode = io_end->inode; ext4_end_bio()
326 (unsigned long long) io_end->offset, ext4_end_bio()
327 (long) io_end->size, ext4_end_bio()
333 if (io_end->flag & EXT4_IO_END_UNWRITTEN) { ext4_end_bio()
335 * Link bio into list hanging from io_end. We have to do it ext4_end_bio()
339 bio->bi_private = xchg(&io_end->bio, bio); ext4_end_bio()
340 ext4_put_io_end_defer(io_end); ext4_end_bio()
343 * Drop io_end reference early. Inode can get freed once ext4_end_bio()
346 ext4_put_io_end_defer(io_end); ext4_end_bio()
371 io->io_end = NULL; ext4_io_submit_init()
386 bio->bi_private = ext4_get_io_end(io->io_end); io_submit_init_bio()
H A Dinode.c721 ext4_io_end_t *io_end = ext4_inode_aio(inode); _ext4_get_block() local
731 WARN_ON_ONCE(io_end); _ext4_get_block()
735 if (io_end && io_end->flag & EXT4_IO_END_UNWRITTEN) _ext4_get_block()
1915 io_submit.io_end = ext4_init_io_end(inode, GFP_NOFS); ext4_writepage()
1916 if (!io_submit.io_end) { ext4_writepage()
1923 /* Drop io_end reference we got from init */ ext4_writepage()
1924 ext4_put_io_end_defer(io_submit.io_end); ext4_writepage()
2111 * io_end->size as the following call mpage_map_and_submit_buffers()
2133 mpd->io_submit.io_end->size += PAGE_CACHE_SIZE; mpage_map_and_submit_buffers()
2185 if (!mpd->io_submit.io_end->handle && mpage_map_one_extent()
2187 mpd->io_submit.io_end->handle = handle->h_rsv_handle; mpage_map_one_extent()
2190 ext4_set_io_unwritten_flag(inode, mpd->io_submit.io_end); mpage_map_one_extent()
2234 mpd->io_submit.io_end->offset = mpage_map_and_submit_extent()
2336 * Note that this function can attach bios to one io_end structure which are
2339 * case as we need to track IO to all buffers underlying a page in one io_end.
2546 /* For each extent of pages we use new io_end */ ext4_writepages()
2547 mpd.io_submit.io_end = ext4_init_io_end(inode, GFP_KERNEL); ext4_writepages()
2548 if (!mpd.io_submit.io_end) { ext4_writepages()
2571 /* Release allocated io_end */ ext4_writepages()
2572 ext4_put_io_end(mpd.io_submit.io_end); ext4_writepages()
2597 /* Drop our io_end reference we got from init */ ext4_writepages()
2598 ext4_put_io_end(mpd.io_submit.io_end); ext4_writepages()
3108 ext4_io_end_t *io_end = iocb->private; ext4_end_io_dio() local
3111 if (!io_end) ext4_end_io_dio()
3114 ext_debug("ext4_end_io_dio(): io_end 0x%p " ext4_end_io_dio()
3116 iocb->private, io_end->inode->i_ino, iocb, offset, ext4_end_io_dio()
3120 io_end->offset = offset; ext4_end_io_dio()
3121 io_end->size = size; ext4_end_io_dio()
3122 ext4_put_io_end(io_end); ext4_end_io_dio()
3155 ext4_io_end_t *io_end = NULL; ext4_ext_direct_IO() local
3196 * case, we allocate an io_end structure to hook to the iocb. ext4_ext_direct_IO()
3201 io_end = ext4_init_io_end(inode, GFP_NOFS); ext4_ext_direct_IO()
3202 if (!io_end) { ext4_ext_direct_IO()
3209 iocb->private = ext4_get_io_end(io_end); ext4_ext_direct_IO()
3216 ext4_inode_aio_set(inode, io_end); ext4_ext_direct_IO()
3238 * Put our reference to io_end. This can free the io_end structure e.g. ext4_ext_direct_IO()
3244 if (io_end) { ext4_ext_direct_IO()
3246 ext4_put_io_end(io_end); ext4_ext_direct_IO()
3252 WARN_ON(iocb->private != io_end); ext4_ext_direct_IO()
3253 WARN_ON(io_end->flag & EXT4_IO_END_UNWRITTEN); ext4_ext_direct_IO()
3254 ext4_put_io_end(io_end); ext4_ext_direct_IO()
H A Dext4.h193 ext4_io_end_t *io_end; member in struct:ext4_io_submit
1004 atomic_t i_ioend_count; /* Number of outstanding io_end structs */
1480 struct ext4_io_end *io_end) ext4_set_io_unwritten_flag()
1482 if (!(io_end->flag & EXT4_IO_END_UNWRITTEN)) { ext4_set_io_unwritten_flag()
1483 io_end->flag |= EXT4_IO_END_UNWRITTEN; ext4_set_io_unwritten_flag()
3196 extern ext4_io_end_t *ext4_get_io_end(ext4_io_end_t *io_end);
3197 extern int ext4_put_io_end(ext4_io_end_t *io_end);
3198 extern void ext4_put_io_end_defer(ext4_io_end_t *io_end);
1479 ext4_set_io_unwritten_flag(struct inode *inode, struct ext4_io_end *io_end) ext4_set_io_unwritten_flag() argument
H A Dextents.c4486 * io_end structure was created for every IO write to an ext4_ext_map_blocks()
/linux-4.4.14/drivers/pci/hotplug/
H A Dibmphp_ebda.c231 debug ("%s - io_end: %x\n", __func__, hpc_ptr->u.isa_ctlr.io_end); print_ebda_hpc()
873 hpc_ptr->u.isa_ctlr.io_end = readw (io_mem + addr + 2); ebda_rsrc_controller()
875 (hpc_ptr->u.isa_ctlr.io_end - hpc_ptr->u.isa_ctlr.io_start + 1), ebda_rsrc_controller()
1140 release_region (controller->u.isa_ctlr.io_start, (controller->u.isa_ctlr.io_end - controller->u.isa_ctlr.io_start + 1)); ibmphp_free_ebda_hpc_queue()
H A Dibmphp.h204 u16 io_end; member in struct:isa_ctlr_access
H A Dibmphp_hpc.c363 end_address = ctlr_ptr->u.isa_ctlr.io_end; isa_ctrl_read()

Completed in 478 milliseconds