• Home
  • Raw
  • Download

Lines Matching full:iop

54 	struct iomap_page *iop = to_iomap_page(page);  in iomap_page_create()  local
57 if (iop || nr_blocks <= 1) in iomap_page_create()
58 return iop; in iomap_page_create()
60 iop = kzalloc(struct_size(iop, uptodate, BITS_TO_LONGS(nr_blocks)), in iomap_page_create()
62 spin_lock_init(&iop->uptodate_lock); in iomap_page_create()
64 bitmap_fill(iop->uptodate, nr_blocks); in iomap_page_create()
65 attach_page_private(page, iop); in iomap_page_create()
66 return iop; in iomap_page_create()
72 struct iomap_page *iop = detach_page_private(page); in iomap_page_release() local
75 if (!iop) in iomap_page_release()
77 WARN_ON_ONCE(atomic_read(&iop->read_bytes_pending)); in iomap_page_release()
78 WARN_ON_ONCE(atomic_read(&iop->write_bytes_pending)); in iomap_page_release()
79 WARN_ON_ONCE(bitmap_full(iop->uptodate, nr_blocks) != in iomap_page_release()
81 kfree(iop); in iomap_page_release()
88 iomap_adjust_read_range(struct inode *inode, struct iomap_page *iop, in iomap_adjust_read_range() argument
105 if (iop) { in iomap_adjust_read_range()
110 if (!test_bit(i, iop->uptodate)) in iomap_adjust_read_range()
120 if (test_bit(i, iop->uptodate)) { in iomap_adjust_read_range()
147 struct iomap_page *iop = to_iomap_page(page); in iomap_iop_set_range_uptodate() local
153 spin_lock_irqsave(&iop->uptodate_lock, flags); in iomap_iop_set_range_uptodate()
154 bitmap_set(iop->uptodate, first, last - first + 1); in iomap_iop_set_range_uptodate()
155 if (bitmap_full(iop->uptodate, i_blocks_per_page(inode, page))) in iomap_iop_set_range_uptodate()
157 spin_unlock_irqrestore(&iop->uptodate_lock, flags); in iomap_iop_set_range_uptodate()
176 struct iomap_page *iop = to_iomap_page(page); in iomap_read_page_end_io() local
185 if (!iop || atomic_sub_and_test(bvec->bv_len, &iop->read_bytes_pending)) in iomap_read_page_end_io()
242 struct iomap_page *iop = iomap_page_create(inode, page); in iomap_readpage_actor() local
255 iomap_adjust_read_range(inode, iop, &pos, length, &poff, &plen); in iomap_readpage_actor()
266 if (iop) in iomap_readpage_actor()
267 atomic_add(plen, &iop->read_bytes_pending); in iomap_readpage_actor()
436 struct iomap_page *iop = to_iomap_page(page); in iomap_is_partially_uptodate() local
448 if (iop) { in iomap_is_partially_uptodate()
450 if (!test_bit(i, iop->uptodate)) in iomap_is_partially_uptodate()
554 struct iomap_page *iop = iomap_page_create(inode, page); in __iomap_write_begin() local
565 iomap_adjust_read_range(inode, iop, &block_start, in __iomap_write_begin()
1045 struct iomap_page *iop = to_iomap_page(page); in iomap_finish_page_writeback() local
1052 WARN_ON_ONCE(i_blocks_per_page(inode, page) > 1 && !iop); in iomap_finish_page_writeback()
1053 WARN_ON_ONCE(iop && atomic_read(&iop->write_bytes_pending) <= 0); in iomap_finish_page_writeback()
1055 if (!iop || atomic_sub_and_test(len, &iop->write_bytes_pending)) in iomap_finish_page_writeback()
1291 struct iomap_page *iop, struct iomap_writepage_ctx *wpc, in iomap_add_to_ioend() argument
1307 if (iop) in iomap_add_to_ioend()
1308 atomic_add(len, &iop->write_bytes_pending); in iomap_add_to_ioend()
1343 struct iomap_page *iop = to_iomap_page(page); in iomap_writepage_map() local
1350 WARN_ON_ONCE(i_blocks_per_page(inode, page) > 1 && !iop); in iomap_writepage_map()
1351 WARN_ON_ONCE(iop && atomic_read(&iop->write_bytes_pending) != 0); in iomap_writepage_map()
1361 if (iop && !test_bit(i, iop->uptodate)) in iomap_writepage_map()
1371 iomap_add_to_ioend(inode, file_offset, page, iop, wpc, wbc, in iomap_writepage_map()