Lines Matching refs:iop
49 struct iomap_page *iop = to_iomap_page(folio); in iomap_page_create() local
53 if (iop || nr_blocks <= 1) in iomap_page_create()
54 return iop; in iomap_page_create()
61 iop = kzalloc(struct_size(iop, uptodate, BITS_TO_LONGS(nr_blocks)), in iomap_page_create()
63 if (iop) { in iomap_page_create()
64 spin_lock_init(&iop->uptodate_lock); in iomap_page_create()
66 bitmap_fill(iop->uptodate, nr_blocks); in iomap_page_create()
67 folio_attach_private(folio, iop); in iomap_page_create()
69 return iop; in iomap_page_create()
74 struct iomap_page *iop = folio_detach_private(folio); in iomap_page_release() local
78 if (!iop) in iomap_page_release()
80 WARN_ON_ONCE(atomic_read(&iop->read_bytes_pending)); in iomap_page_release()
81 WARN_ON_ONCE(atomic_read(&iop->write_bytes_pending)); in iomap_page_release()
82 WARN_ON_ONCE(bitmap_full(iop->uptodate, nr_blocks) != in iomap_page_release()
84 kfree(iop); in iomap_page_release()
93 struct iomap_page *iop = to_iomap_page(folio); in iomap_adjust_read_range() local
108 if (iop) { in iomap_adjust_read_range()
113 if (!test_bit(i, iop->uptodate)) in iomap_adjust_read_range()
123 if (test_bit(i, iop->uptodate)) { in iomap_adjust_read_range()
148 struct iomap_page *iop, size_t off, size_t len) in iomap_iop_set_range_uptodate() argument
155 spin_lock_irqsave(&iop->uptodate_lock, flags); in iomap_iop_set_range_uptodate()
156 bitmap_set(iop->uptodate, first, last - first + 1); in iomap_iop_set_range_uptodate()
157 if (bitmap_full(iop->uptodate, i_blocks_per_folio(inode, folio))) in iomap_iop_set_range_uptodate()
159 spin_unlock_irqrestore(&iop->uptodate_lock, flags); in iomap_iop_set_range_uptodate()
163 struct iomap_page *iop, size_t off, size_t len) in iomap_set_range_uptodate() argument
165 if (iop) in iomap_set_range_uptodate()
166 iomap_iop_set_range_uptodate(folio, iop, off, len); in iomap_set_range_uptodate()
174 struct iomap_page *iop = to_iomap_page(folio); in iomap_finish_folio_read() local
180 iomap_set_range_uptodate(folio, iop, offset, len); in iomap_finish_folio_read()
183 if (!iop || atomic_sub_and_test(len, &iop->read_bytes_pending)) in iomap_finish_folio_read()
216 struct iomap_page *iop; in iomap_read_inline_data() local
234 iop = iomap_page_create(iter->inode, folio, iter->flags); in iomap_read_inline_data()
236 iop = to_iomap_page(folio); in iomap_read_inline_data()
242 iomap_set_range_uptodate(folio, iop, offset, PAGE_SIZE - poff); in iomap_read_inline_data()
263 struct iomap_page *iop; in iomap_readpage_iter() local
272 iop = iomap_page_create(iter->inode, folio, iter->flags); in iomap_readpage_iter()
279 iomap_set_range_uptodate(folio, iop, poff, plen); in iomap_readpage_iter()
284 if (iop) in iomap_readpage_iter()
285 atomic_add(plen, &iop->read_bytes_pending); in iomap_readpage_iter()
439 struct iomap_page *iop = to_iomap_page(folio); in iomap_is_partially_uptodate() local
443 if (!iop) in iomap_is_partially_uptodate()
454 if (!test_bit(i, iop->uptodate)) in iomap_is_partially_uptodate()
557 struct iomap_page *iop; in __iomap_write_begin() local
569 iop = iomap_page_create(iter->inode, folio, iter->flags); in __iomap_write_begin()
570 if ((iter->flags & IOMAP_NOWAIT) && !iop && nr_blocks > 1) in __iomap_write_begin()
599 iomap_set_range_uptodate(folio, iop, poff, plen); in __iomap_write_begin()
706 struct iomap_page *iop = to_iomap_page(folio); in __iomap_write_end() local
722 iomap_set_range_uptodate(folio, iop, offset_in_folio(folio, pos), len); in __iomap_write_end()
1300 struct iomap_page *iop = to_iomap_page(folio); in iomap_finish_folio_write() local
1307 WARN_ON_ONCE(i_blocks_per_folio(inode, folio) > 1 && !iop); in iomap_finish_folio_write()
1308 WARN_ON_ONCE(iop && atomic_read(&iop->write_bytes_pending) <= 0); in iomap_finish_folio_write()
1310 if (!iop || atomic_sub_and_test(len, &iop->write_bytes_pending)) in iomap_finish_folio_write()
1577 struct iomap_page *iop, struct iomap_writepage_ctx *wpc, in iomap_add_to_ioend() argument
1595 if (iop) in iomap_add_to_ioend()
1596 atomic_add(len, &iop->write_bytes_pending); in iomap_add_to_ioend()
1622 struct iomap_page *iop = iomap_page_create(inode, folio, 0); in iomap_writepage_map() local
1630 WARN_ON_ONCE(iop && atomic_read(&iop->write_bytes_pending) != 0); in iomap_writepage_map()
1638 if (iop && !test_bit(i, iop->uptodate)) in iomap_writepage_map()
1649 iomap_add_to_ioend(inode, pos, folio, iop, wpc, wbc, in iomap_writepage_map()