Lines Matching refs:folio

369 struct address_space *folio_mapping(struct folio *);
370 struct address_space *swapcache_mapping(struct folio *);
384 static inline struct address_space *folio_file_mapping(struct folio *folio) in folio_file_mapping() argument
386 if (unlikely(folio_test_swapcache(folio))) in folio_file_mapping()
387 return swapcache_mapping(folio); in folio_file_mapping()
389 return folio->mapping; in folio_file_mapping()
404 static inline struct address_space *folio_flush_mapping(struct folio *folio) in folio_flush_mapping() argument
406 if (unlikely(folio_test_swapcache(folio))) in folio_flush_mapping()
409 return folio_mapping(folio); in folio_flush_mapping()
426 static inline struct inode *folio_inode(struct folio *folio) in folio_inode() argument
428 return folio->mapping->host; in folio_inode()
439 static inline void folio_attach_private(struct folio *folio, void *data) in folio_attach_private() argument
441 folio_get(folio); in folio_attach_private()
442 folio->private = data; in folio_attach_private()
443 folio_set_private(folio); in folio_attach_private()
457 static inline void *folio_change_private(struct folio *folio, void *data) in folio_change_private() argument
459 void *old = folio_get_private(folio); in folio_change_private()
461 folio->private = data; in folio_change_private()
474 static inline void *folio_detach_private(struct folio *folio) in folio_detach_private() argument
476 void *data = folio_get_private(folio); in folio_detach_private()
478 if (!folio_test_private(folio)) in folio_detach_private()
480 folio_clear_private(folio); in folio_detach_private()
481 folio->private = NULL; in folio_detach_private()
482 folio_put(folio); in folio_detach_private()
511 struct folio *filemap_alloc_folio(gfp_t gfp, unsigned int order);
513 static inline struct folio *filemap_alloc_folio(gfp_t gfp, unsigned int order) in filemap_alloc_folio()
534 typedef int filler_t(struct file *, struct folio *);
600 struct folio *__filemap_get_folio(struct address_space *mapping, pgoff_t index,
616 static inline struct folio *filemap_get_folio(struct address_space *mapping, in filemap_get_folio()
634 static inline struct folio *filemap_lock_folio(struct address_space *mapping, in filemap_lock_folio()
652 static inline struct folio *filemap_grab_folio(struct address_space *mapping, in filemap_grab_folio()
749 #define swapcache_index(folio) __page_file_index(&(folio)->page) argument
762 static inline pgoff_t folio_index(struct folio *folio) in folio_index() argument
764 if (unlikely(folio_test_swapcache(folio))) in folio_index()
765 return swapcache_index(folio); in folio_index()
766 return folio->index; in folio_index()
775 static inline pgoff_t folio_next_index(struct folio *folio) in folio_next_index() argument
777 return folio->index + folio_nr_pages(folio); in folio_next_index()
790 static inline struct page *folio_file_page(struct folio *folio, pgoff_t index) in folio_file_page() argument
793 if (folio_test_hugetlb(folio)) in folio_file_page()
794 return &folio->page; in folio_file_page()
795 return folio_page(folio, index & (folio_nr_pages(folio) - 1)); in folio_file_page()
808 static inline bool folio_contains(struct folio *folio, pgoff_t index) in folio_contains() argument
811 if (folio_test_hugetlb(folio)) in folio_contains()
812 return folio->index == index; in folio_contains()
813 return index - folio_index(folio) < folio_nr_pages(folio); in folio_contains()
848 struct folio *read_cache_folio(struct address_space *, pgoff_t index,
850 struct folio *mapping_read_folio_gfp(struct address_space *, pgoff_t index,
863 static inline struct folio *read_mapping_folio(struct address_space *mapping, in read_mapping_folio()
918 static inline loff_t folio_pos(struct folio *folio) in folio_pos() argument
920 return page_offset(&folio->page); in folio_pos()
930 static inline loff_t folio_file_pos(struct folio *folio) in folio_file_pos() argument
932 return page_file_offset(&folio->page); in folio_file_pos()
939 static inline pgoff_t folio_pgoff(struct folio *folio) in folio_pgoff() argument
941 if (unlikely(folio_test_hugetlb(folio))) in folio_pgoff()
942 return hugetlb_basepage_index(&folio->page); in folio_pgoff()
943 return folio->index; in folio_pgoff()
961 struct folio *folio; member
967 struct folio *folio; member
975 if (wait_page->folio != key->folio) in wake_page_match()
985 void __folio_lock(struct folio *folio);
986 int __folio_lock_killable(struct folio *folio);
987 vm_fault_t __folio_lock_or_retry(struct folio *folio, struct vm_fault *vmf);
989 void folio_unlock(struct folio *folio);
1003 static inline bool folio_trylock(struct folio *folio) in folio_trylock() argument
1005 return likely(!test_and_set_bit_lock(PG_locked, folio_flags(folio, 0))); in folio_trylock()
1038 static inline void folio_lock(struct folio *folio) in folio_lock() argument
1041 if (!folio_trylock(folio)) in folio_lock()
1042 __folio_lock(folio); in folio_lock()
1058 struct folio *folio; in lock_page() local
1061 folio = page_folio(page); in lock_page()
1062 if (!folio_trylock(folio)) in lock_page()
1063 __folio_lock(folio); in lock_page()
1076 static inline int folio_lock_killable(struct folio *folio) in folio_lock_killable() argument
1079 if (!folio_trylock(folio)) in folio_lock_killable()
1080 return __folio_lock_killable(folio); in folio_lock_killable()
1091 static inline vm_fault_t folio_lock_or_retry(struct folio *folio, in folio_lock_or_retry() argument
1095 if (!folio_trylock(folio)) in folio_lock_or_retry()
1096 return __folio_lock_or_retry(folio, vmf); in folio_lock_or_retry()
1104 void folio_wait_bit(struct folio *folio, int bit_nr);
1105 int folio_wait_bit_killable(struct folio *folio, int bit_nr);
1114 static inline void folio_wait_locked(struct folio *folio) in folio_wait_locked() argument
1116 if (folio_test_locked(folio)) in folio_wait_locked()
1117 folio_wait_bit(folio, PG_locked); in folio_wait_locked()
1120 static inline int folio_wait_locked_killable(struct folio *folio) in folio_wait_locked_killable() argument
1122 if (!folio_test_locked(folio)) in folio_wait_locked_killable()
1124 return folio_wait_bit_killable(folio, PG_locked); in folio_wait_locked_killable()
1133 void folio_wait_writeback(struct folio *folio);
1134 int folio_wait_writeback_killable(struct folio *folio);
1136 void folio_end_writeback(struct folio *folio);
1138 void folio_wait_stable(struct folio *folio);
1139 void __folio_mark_dirty(struct folio *folio, struct address_space *, int warn);
1145 void folio_account_cleaned(struct folio *folio, struct bdi_writeback *wb);
1146 void __folio_cancel_dirty(struct folio *folio);
1147 static inline void folio_cancel_dirty(struct folio *folio) in folio_cancel_dirty() argument
1150 if (folio_test_dirty(folio)) in folio_cancel_dirty()
1151 __folio_cancel_dirty(folio); in folio_cancel_dirty()
1153 bool folio_clear_dirty_for_io(struct folio *folio);
1155 void folio_invalidate(struct folio *folio, size_t offset, size_t length);
1157 bool noop_dirty_folio(struct address_space *mapping, struct folio *folio);
1160 int filemap_migrate_folio(struct address_space *mapping, struct folio *dst,
1161 struct folio *src, enum migrate_mode mode);
1165 void folio_end_private_2(struct folio *folio);
1166 void folio_wait_private_2(struct folio *folio);
1167 int folio_wait_private_2_killable(struct folio *folio);
1172 void folio_add_wait_queue(struct folio *folio, wait_queue_entry_t *waiter);
1184 int filemap_add_folio(struct address_space *mapping, struct folio *folio,
1186 void filemap_remove_folio(struct folio *folio);
1187 void __filemap_remove_folio(struct folio *folio, void *shadow);
1188 void replace_page_cache_folio(struct folio *old, struct folio *new);
1191 bool filemap_release_folio(struct folio *folio, gfp_t gfp);
1196 int __filemap_add_folio(struct address_space *mapping, struct folio *folio,
1269 void page_cache_async_ra(struct readahead_control *, struct folio *,
1313 struct folio *folio, pgoff_t index, unsigned long req_count) in page_cache_async_readahead() argument
1316 page_cache_async_ra(&ractl, folio, req_count); in page_cache_async_readahead()
1319 static inline struct folio *__readahead_folio(struct readahead_control *ractl) in __readahead_folio()
1321 struct folio *folio; in __readahead_folio() local
1332 folio = xa_load(&ractl->mapping->i_pages, ractl->_index); in __readahead_folio()
1333 VM_BUG_ON_FOLIO(!folio_test_locked(folio), folio); in __readahead_folio()
1334 ractl->_batch_count = folio_nr_pages(folio); in __readahead_folio()
1336 return folio; in __readahead_folio()
1350 struct folio *folio = __readahead_folio(ractl); in readahead_page() local
1352 return &folio->page; in readahead_page()
1363 static inline struct folio *readahead_folio(struct readahead_control *ractl) in readahead_folio()
1365 struct folio *folio = __readahead_folio(ractl); in readahead_folio() local
1367 if (folio) in readahead_folio()
1368 folio_put(folio); in readahead_folio()
1369 return folio; in readahead_folio()
1474 static inline ssize_t folio_mkwrite_check_truncate(struct folio *folio, in folio_mkwrite_check_truncate() argument
1479 size_t offset = offset_in_folio(folio, size); in folio_mkwrite_check_truncate()
1481 if (!folio->mapping) in folio_mkwrite_check_truncate()
1485 if (folio_next_index(folio) - 1 < index) in folio_mkwrite_check_truncate()
1486 return folio_size(folio); in folio_mkwrite_check_truncate()
1488 if (folio->index > index || !offset) in folio_mkwrite_check_truncate()
1534 unsigned int i_blocks_per_folio(struct inode *inode, struct folio *folio) in i_blocks_per_folio() argument
1536 return folio_size(folio) >> inode->i_blkbits; in i_blocks_per_folio()