Lines Matching refs:page

26 	uint	pagealloc;	/* # of page allocations */
27 uint pagefree; /* # of page frees */
49 unlock_page(mp->page);
51 lock_page(mp->page);
59 * Must have mp->page locked
80 #define mp_anchor(page) ((struct meta_anchor *)page_private(page))
82 static inline struct metapage *page_to_mp(struct page *page, int offset)
84 if (!PagePrivate(page))
86 return mp_anchor(page)->mp[offset >> L2PSIZE];
89 static inline int insert_metapage(struct page *page, struct metapage *mp)
95 if (PagePrivate(page))
96 a = mp_anchor(page);
101 set_page_private(page, (unsigned long)a);
102 SetPagePrivate(page);
103 kmap(page);
107 l2mp_blocks = L2PSIZE - page->mapping->host->i_blkbits;
116 static inline void remove_metapage(struct page *page, struct metapage *mp)
118 struct meta_anchor *a = mp_anchor(page);
119 int l2mp_blocks = L2PSIZE - page->mapping->host->i_blkbits;
129 set_page_private(page, 0);
130 ClearPagePrivate(page);
131 kunmap(page);
135 static inline void inc_io(struct page *page)
137 atomic_inc(&mp_anchor(page)->io_count);
140 static inline void dec_io(struct page *page, void (*handler) (struct page *))
142 if (atomic_dec_and_test(&mp_anchor(page)->io_count))
143 handler(page);
147 static inline struct metapage *page_to_mp(struct page *page, int offset)
149 return PagePrivate(page) ? (struct metapage *)page_private(page) : NULL;
152 static inline int insert_metapage(struct page *page, struct metapage *mp)
155 set_page_private(page, (unsigned long)mp);
156 SetPagePrivate(page);
157 kmap(page);
162 static inline void remove_metapage(struct page *page, struct metapage *mp)
164 set_page_private(page, 0);
165 ClearPagePrivate(page);
166 kunmap(page);
169 #define inc_io(page) do {} while(0)
170 #define dec_io(page, handler) handler(page)
221 static inline void drop_metapage(struct page *page, struct metapage *mp)
226 remove_metapage(page, mp);
260 static void last_read_complete(struct page *page)
262 if (!PageError(page))
263 SetPageUptodate(page);
264 unlock_page(page);
269 struct page *page = bio->bi_private;
273 SetPageError(page);
276 dec_io(page, last_read_complete);
302 static void last_write_complete(struct page *page)
308 mp = page_to_mp(page, offset);
316 * safe unless I have the page locked
319 end_page_writeback(page);
324 struct page *page = bio->bi_private;
326 BUG_ON(!PagePrivate(page));
330 SetPageError(page);
332 dec_io(page, last_write_complete);
336 static int metapage_writepage(struct page *page, struct writeback_control *wbc)
339 int block_offset; /* block offset of mp within page */
340 struct inode *inode = page->mapping->host;
356 page_start = (sector_t)page->index <<
358 BUG_ON(!PageLocked(page));
359 BUG_ON(PageWriteback(page));
360 set_page_writeback(page);
363 mp = page_to_mp(page, offset);
371 * Make sure this page isn't blocked indefinitely.
392 if (bio_add_page(bio, page, bio_bytes, bio_offset) <
399 inc_io(page);
406 inc_io(page);
413 * with dec_io() until we're done with the page
423 bio->bi_private = page;
433 if (bio_add_page(bio, page, bio_bytes, bio_offset) < bio_bytes)
442 redirty_page_for_writepage(wbc, page);
444 unlock_page(page);
450 end_page_writeback(page);
462 unlock_page(page);
463 dec_io(page, last_write_complete);
466 dec_io(page, last_write_complete);
472 struct page *page = &folio->page;
473 struct inode *inode = page->mapping->host;
476 int blocks_per_page = i_blocks_per_page(inode, page);
477 sector_t page_start; /* address of page in fs blocks */
483 BUG_ON(!PageLocked(page));
484 page_start = (sector_t)page->index <<
493 if (!PagePrivate(page))
494 insert_metapage(page, NULL);
495 inc_io(page);
504 bio->bi_private = page;
507 if (bio_add_page(bio, page, len, offset) < len)
516 unlock_page(page);
523 dec_io(page, last_read_complete);
534 mp = page_to_mp(&folio->page, offset);
549 remove_metapage(&folio->page, mp);
582 struct page *page;
594 jfs_err("MetaData crosses page boundary!!");
613 page = grab_cache_page(mapping, page_index);
614 if (!page) {
618 SetPageUptodate(page);
620 page = read_mapping_page(mapping, page_index, NULL);
621 if (IS_ERR(page)) {
625 lock_page(page);
628 mp = page_to_mp(page, page_offset);
654 mp->page = page;
661 mp->data = page_address(page) + page_offset;
663 if (unlikely(insert_metapage(page, mp))) {
675 unlock_page(page);
680 unlock_page(page);
687 get_page(mp->page);
688 lock_page(mp->page);
691 unlock_page(mp->page);
694 static int metapage_write_one(struct page *page)
696 struct folio *folio = page_folio(page);
710 ret = metapage_writepage(page, &wbc);
725 struct page *page = mp->page;
729 get_page(page);
730 lock_page(page);
731 set_page_dirty(page);
732 if (metapage_write_one(page))
735 put_page(page);
740 lock_page(mp->page);
747 unlock_page(mp->page);
750 get_page(mp->page);
753 unlock_page(mp->page);
759 struct page *page = mp->page;
762 BUG_ON(!page);
764 lock_page(page);
769 unlock_page(page);
770 put_page(page);
775 set_page_dirty(page);
778 if (metapage_write_one(page))
780 lock_page(page);
786 drop_metapage(page, mp);
788 unlock_page(page);
789 put_page(page);
801 struct page *page;
810 page = find_lock_page(mapping, lblock >> l2BlocksPerPage);
811 if (!page)
814 mp = page_to_mp(page, offset);
827 unlock_page(page);
828 put_page(page);
838 "page allocations = %d\n"
839 "page frees = %d\n"