diff --git a/include/linux/mm.h b/include/linux/mm.h index 541d99b86aea9efe8df91ed29eae76e9e6e23918..7000ddd807e012279d062b18b75b9822dcd5ea44 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h @@ -980,6 +980,15 @@ static inline void get_page(struct page *page) page_ref_inc(page); } +static inline __must_check bool try_get_page(struct page *page) +{ + page = compound_head(page); + if (WARN_ON_ONCE(page_ref_count(page) <= 0)) + return false; + page_ref_inc(page); + return true; +} + static inline void put_page(struct page *page) { page = compound_head(page);