diff --git a/include/linux/mm.h b/include/linux/mm.h index 03fee0ecc6ed..43c0874121bf 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h @@ -793,6 +793,15 @@ static inline void get_page(struct page *page) get_zone_device_page(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);