Lines Matching refs:folio

7 typedef DARRAY(struct folio *) folios;
14 * Use u64 for the end pos and sector helpers because if the folio covers the
15 * max supported range of the mapping, the start offset of the next folio
19 static inline u64 folio_end_pos(struct folio *folio)
21 return folio_pos(folio) + folio_size(folio);
24 static inline size_t folio_sectors(struct folio *folio)
26 return PAGE_SECTORS << folio_order(folio);
29 static inline loff_t folio_sector(struct folio *folio)
31 return folio_pos(folio) >> 9;
34 static inline u64 folio_end_sector(struct folio *folio)
36 return folio_end_pos(folio) >> 9;
72 static inline void bch2_folio_sector_set(struct folio *folio,
79 /* file offset (to folio offset) to bch_folio_sector index */
80 static inline int folio_pos_to_s(struct folio *folio, loff_t pos)
82 u64 f_offset = pos - folio_pos(folio);
84 BUG_ON(pos < folio_pos(folio) || pos >= folio_end_pos(folio));
89 static inline void __bch2_folio_release(struct folio *folio)
91 kfree(folio_detach_private(folio));
94 static inline void bch2_folio_release(struct folio *folio)
96 EBUG_ON(!folio_test_locked(folio));
97 __bch2_folio_release(folio);
100 static inline struct bch_folio *__bch2_folio(struct folio *folio)
102 return folio_has_private(folio)
103 ? (struct bch_folio *) folio_get_private(folio)
107 static inline struct bch_folio *bch2_folio(struct folio *folio)
109 EBUG_ON(!folio_test_locked(folio));
111 return __bch2_folio(folio);
114 struct bch_folio *__bch2_folio_create(struct folio *, gfp_t);
115 struct bch_folio *bch2_folio_create(struct folio *, gfp_t);
139 int bch2_folio_set(struct bch_fs *, subvol_inum, struct folio **, unsigned);
147 struct folio *, bool);
154 struct folio *,
160 struct folio *,
166 void bch2_invalidate_folio(struct folio *, size_t, size_t);
167 bool bch2_release_folio(struct folio *, gfp_t);