diff --git a/include/linux/mm.h b/include/linux/mm.h index 3c39ce6db0c590541f043fe7169597bcffac1107..461a01c8e4b3e0b77d857395996c2c8a1adeaa22 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h @@ -932,6 +932,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);