Lines Matching refs:folio

349 struct address_space *folio_mapping(struct folio *);
350 struct address_space *swapcache_mapping(struct folio *);
364 static inline struct address_space *folio_file_mapping(struct folio *folio) in folio_file_mapping() argument
366 if (unlikely(folio_test_swapcache(folio))) in folio_file_mapping()
367 return swapcache_mapping(folio); in folio_file_mapping()
369 return folio->mapping; in folio_file_mapping()
382 struct folio *folio = page_folio(page); in page_mapping_file() local
384 if (unlikely(folio_test_swapcache(folio))) in page_mapping_file()
386 return folio_mapping(folio); in page_mapping_file()
398 static inline struct inode *folio_inode(struct folio *folio) in folio_inode() argument
400 return folio->mapping->host; in folio_inode()
411 static inline void folio_attach_private(struct folio *folio, void *data) in folio_attach_private() argument
413 folio_get(folio); in folio_attach_private()
414 folio->private = data; in folio_attach_private()
415 folio_set_private(folio); in folio_attach_private()
429 static inline void *folio_change_private(struct folio *folio, void *data) in folio_change_private() argument
431 void *old = folio_get_private(folio); in folio_change_private()
433 folio->private = data; in folio_change_private()
446 static inline void *folio_detach_private(struct folio *folio) in folio_detach_private() argument
448 void *data = folio_get_private(folio); in folio_detach_private()
450 if (!folio_test_private(folio)) in folio_detach_private()
452 folio_clear_private(folio); in folio_detach_private()
453 folio->private = NULL; in folio_detach_private()
454 folio_put(folio); in folio_detach_private()
470 struct folio *filemap_alloc_folio(gfp_t gfp, unsigned int order);
472 static inline struct folio *filemap_alloc_folio(gfp_t gfp, unsigned int order) in filemap_alloc_folio()
493 typedef int filler_t(struct file *, struct folio *);
511 struct folio *__filemap_get_folio(struct address_space *mapping, pgoff_t index,
526 static inline struct folio *filemap_get_folio(struct address_space *mapping, in filemap_get_folio()
544 static inline struct folio *filemap_lock_folio(struct address_space *mapping, in filemap_lock_folio()
639 #define swapcache_index(folio) __page_file_index(&(folio)->page) argument
652 static inline pgoff_t folio_index(struct folio *folio) in folio_index() argument
654 if (unlikely(folio_test_swapcache(folio))) in folio_index()
655 return swapcache_index(folio); in folio_index()
656 return folio->index; in folio_index()
665 static inline pgoff_t folio_next_index(struct folio *folio) in folio_next_index() argument
667 return folio->index + folio_nr_pages(folio); in folio_next_index()
680 static inline struct page *folio_file_page(struct folio *folio, pgoff_t index) in folio_file_page() argument
683 if (folio_test_hugetlb(folio)) in folio_file_page()
684 return &folio->page; in folio_file_page()
685 return folio_page(folio, index & (folio_nr_pages(folio) - 1)); in folio_file_page()
698 static inline bool folio_contains(struct folio *folio, pgoff_t index) in folio_contains() argument
701 if (folio_test_hugetlb(folio)) in folio_contains()
702 return folio->index == index; in folio_contains()
703 return index - folio_index(folio) < folio_nr_pages(folio); in folio_contains()
746 struct folio *read_cache_folio(struct address_space *, pgoff_t index,
759 static inline struct folio *read_mapping_folio(struct address_space *mapping, in read_mapping_folio()
814 static inline loff_t folio_pos(struct folio *folio) in folio_pos() argument
816 return page_offset(&folio->page); in folio_pos()
826 static inline loff_t folio_file_pos(struct folio *folio) in folio_file_pos() argument
828 return page_file_offset(&folio->page); in folio_file_pos()
835 static inline pgoff_t folio_pgoff(struct folio *folio) in folio_pgoff() argument
837 if (unlikely(folio_test_hugetlb(folio))) in folio_pgoff()
838 return hugetlb_basepage_index(&folio->page); in folio_pgoff()
839 return folio->index; in folio_pgoff()
857 struct folio *folio; member
863 struct folio *folio; member
871 if (wait_page->folio != key->folio) in wake_page_match()
881 void __folio_lock(struct folio *folio);
882 int __folio_lock_killable(struct folio *folio);
883 bool __folio_lock_or_retry(struct folio *folio, struct mm_struct *mm,
886 void folio_unlock(struct folio *folio);
900 static inline bool folio_trylock(struct folio *folio) in folio_trylock() argument
902 return likely(!test_and_set_bit_lock(PG_locked, folio_flags(folio, 0))); in folio_trylock()
935 static inline void folio_lock(struct folio *folio) in folio_lock() argument
938 if (!folio_trylock(folio)) in folio_lock()
939 __folio_lock(folio); in folio_lock()
955 struct folio *folio; in lock_page() local
958 folio = page_folio(page); in lock_page()
959 if (!folio_trylock(folio)) in lock_page()
960 __folio_lock(folio); in lock_page()
973 static inline int folio_lock_killable(struct folio *folio) in folio_lock_killable() argument
976 if (!folio_trylock(folio)) in folio_lock_killable()
977 return __folio_lock_killable(folio); in folio_lock_killable()
998 static inline bool folio_lock_or_retry(struct folio *folio, in folio_lock_or_retry() argument
1002 return folio_trylock(folio) || __folio_lock_or_retry(folio, mm, flags); in folio_lock_or_retry()
1009 void folio_wait_bit(struct folio *folio, int bit_nr);
1010 int folio_wait_bit_killable(struct folio *folio, int bit_nr);
1019 static inline void folio_wait_locked(struct folio *folio) in folio_wait_locked() argument
1021 if (folio_test_locked(folio)) in folio_wait_locked()
1022 folio_wait_bit(folio, PG_locked); in folio_wait_locked()
1025 static inline int folio_wait_locked_killable(struct folio *folio) in folio_wait_locked_killable() argument
1027 if (!folio_test_locked(folio)) in folio_wait_locked_killable()
1029 return folio_wait_bit_killable(folio, PG_locked); in folio_wait_locked_killable()
1043 void folio_wait_writeback(struct folio *folio);
1044 int folio_wait_writeback_killable(struct folio *folio);
1046 void folio_end_writeback(struct folio *folio);
1048 void folio_wait_stable(struct folio *folio);
1049 void __folio_mark_dirty(struct folio *folio, struct address_space *, int warn);
1055 void folio_account_cleaned(struct folio *folio, struct bdi_writeback *wb);
1056 void __folio_cancel_dirty(struct folio *folio);
1057 static inline void folio_cancel_dirty(struct folio *folio) in folio_cancel_dirty() argument
1060 if (folio_test_dirty(folio)) in folio_cancel_dirty()
1061 __folio_cancel_dirty(folio); in folio_cancel_dirty()
1063 bool folio_clear_dirty_for_io(struct folio *folio);
1065 void folio_invalidate(struct folio *folio, size_t offset, size_t length);
1066 int __must_check folio_write_one(struct folio *folio);
1073 bool noop_dirty_folio(struct address_space *mapping, struct folio *folio);
1076 int filemap_migrate_folio(struct address_space *mapping, struct folio *dst,
1077 struct folio *src, enum migrate_mode mode);
1083 void folio_end_private_2(struct folio *folio);
1084 void folio_wait_private_2(struct folio *folio);
1085 int folio_wait_private_2_killable(struct folio *folio);
1090 void folio_add_wait_queue(struct folio *folio, wait_queue_entry_t *waiter);
1102 int filemap_add_folio(struct address_space *mapping, struct folio *folio,
1104 void filemap_remove_folio(struct folio *folio);
1106 void __filemap_remove_folio(struct folio *folio, void *shadow);
1111 bool filemap_release_folio(struct folio *folio, gfp_t gfp);
1116 int __filemap_add_folio(struct address_space *mapping, struct folio *folio,
1189 void page_cache_async_ra(struct readahead_control *, struct folio *,
1233 struct folio *folio, pgoff_t index, unsigned long req_count) in page_cache_async_readahead() argument
1236 page_cache_async_ra(&ractl, folio, req_count); in page_cache_async_readahead()
1239 static inline struct folio *__readahead_folio(struct readahead_control *ractl) in __readahead_folio()
1241 struct folio *folio; in __readahead_folio() local
1252 folio = xa_load(&ractl->mapping->i_pages, ractl->_index); in __readahead_folio()
1253 VM_BUG_ON_FOLIO(!folio_test_locked(folio), folio); in __readahead_folio()
1254 ractl->_batch_count = folio_nr_pages(folio); in __readahead_folio()
1256 return folio; in __readahead_folio()
1270 struct folio *folio = __readahead_folio(ractl); in readahead_page() local
1272 return &folio->page; in readahead_page()
1283 static inline struct folio *readahead_folio(struct readahead_control *ractl) in readahead_folio()
1285 struct folio *folio = __readahead_folio(ractl); in readahead_folio() local
1287 if (folio) in readahead_folio()
1288 folio_put(folio); in readahead_folio()
1289 return folio; in readahead_folio()
1394 static inline ssize_t folio_mkwrite_check_truncate(struct folio *folio, in folio_mkwrite_check_truncate() argument
1399 size_t offset = offset_in_folio(folio, size); in folio_mkwrite_check_truncate()
1401 if (!folio->mapping) in folio_mkwrite_check_truncate()
1405 if (folio_next_index(folio) - 1 < index) in folio_mkwrite_check_truncate()
1406 return folio_size(folio); in folio_mkwrite_check_truncate()
1408 if (folio->index > index || !offset) in folio_mkwrite_check_truncate()
1454 unsigned int i_blocks_per_folio(struct inode *inode, struct folio *folio) in i_blocks_per_folio() argument
1456 return folio_size(folio) >> inode->i_blkbits; in i_blocks_per_folio()