Lines Matching refs:folio
87 static inline int folio_ref_count(const struct folio *folio) in folio_ref_count() argument
89 return page_ref_count(&folio->page); in folio_ref_count()
104 static inline void folio_set_count(struct folio *folio, int v) in folio_set_count() argument
106 set_page_count(&folio->page, v); in folio_set_count()
125 static inline void folio_ref_add(struct folio *folio, int nr) in folio_ref_add() argument
127 page_ref_add(&folio->page, nr); in folio_ref_add()
137 static inline void folio_ref_sub(struct folio *folio, int nr) in folio_ref_sub() argument
139 page_ref_sub(&folio->page, nr); in folio_ref_sub()
151 static inline int folio_ref_sub_return(struct folio *folio, int nr) in folio_ref_sub_return() argument
153 return page_ref_sub_return(&folio->page, nr); in folio_ref_sub_return()
163 static inline void folio_ref_inc(struct folio *folio) in folio_ref_inc() argument
165 page_ref_inc(&folio->page); in folio_ref_inc()
175 static inline void folio_ref_dec(struct folio *folio) in folio_ref_dec() argument
177 page_ref_dec(&folio->page); in folio_ref_dec()
189 static inline int folio_ref_sub_and_test(struct folio *folio, int nr) in folio_ref_sub_and_test() argument
191 return page_ref_sub_and_test(&folio->page, nr); in folio_ref_sub_and_test()
203 static inline int folio_ref_inc_return(struct folio *folio) in folio_ref_inc_return() argument
205 return page_ref_inc_return(&folio->page); in folio_ref_inc_return()
217 static inline int folio_ref_dec_and_test(struct folio *folio) in folio_ref_dec_and_test() argument
219 return page_ref_dec_and_test(&folio->page); in folio_ref_dec_and_test()
231 static inline int folio_ref_dec_return(struct folio *folio) in folio_ref_dec_return() argument
233 return page_ref_dec_return(&folio->page); in folio_ref_dec_return()
245 static inline bool folio_ref_add_unless(struct folio *folio, int nr, int u) in folio_ref_add_unless() argument
247 return page_ref_add_unless(&folio->page, nr, u); in folio_ref_add_unless()
261 static inline bool folio_try_get(struct folio *folio) in folio_try_get() argument
263 return folio_ref_add_unless(folio, 1, 0); in folio_try_get()
266 static inline bool folio_ref_try_add_rcu(struct folio *folio, int count) in folio_ref_try_add_rcu() argument
277 VM_BUG_ON_FOLIO(folio_ref_count(folio) == 0, folio); in folio_ref_try_add_rcu()
278 folio_ref_add(folio, count); in folio_ref_try_add_rcu()
280 if (unlikely(!folio_ref_add_unless(folio, count, 0))) { in folio_ref_try_add_rcu()
311 static inline bool folio_try_get_rcu(struct folio *folio) in folio_try_get_rcu() argument
313 return folio_ref_try_add_rcu(folio, 1); in folio_try_get_rcu()
325 static inline int folio_ref_freeze(struct folio *folio, int count) in folio_ref_freeze() argument
327 return page_ref_freeze(&folio->page, count); in folio_ref_freeze()
340 static inline void folio_ref_unfreeze(struct folio *folio, int count) in folio_ref_unfreeze() argument
342 page_ref_unfreeze(&folio->page, count); in folio_ref_unfreeze()