diff options
author | David Hildenbrand <dahi@linux.vnet.ibm.com> | 2016-06-20 12:09:41 +0200 |
---|---|---|
committer | Christian Borntraeger <borntraeger@de.ibm.com> | 2016-06-21 09:43:04 +0200 |
commit | df9b2b4a4aa49f874f8507680a533369e4b9c378 (patch) | |
tree | 8cbaaa891d43aef8565efa02add892c4901dc102 /include/linux/page_ref.h | |
parent | 3d84683bd737e397ae200e881a3230e469c59ad6 (diff) | |
download | lwn-df9b2b4a4aa49f874f8507680a533369e4b9c378.tar.gz lwn-df9b2b4a4aa49f874f8507680a533369e4b9c378.zip |
mm/page_ref: introduce page_ref_inc_return
Let's introduce that helper.
Signed-off-by: David Hildenbrand <dahi@linux.vnet.ibm.com>
Acked-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
Diffstat (limited to 'include/linux/page_ref.h')
-rw-r--r-- | include/linux/page_ref.h | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/include/linux/page_ref.h b/include/linux/page_ref.h index 8b5e0a9f2431..610e13271918 100644 --- a/include/linux/page_ref.h +++ b/include/linux/page_ref.h @@ -124,6 +124,15 @@ static inline int page_ref_sub_and_test(struct page *page, int nr) return ret; } +static inline int page_ref_inc_return(struct page *page) +{ + int ret = atomic_inc_return(&page->_refcount); + + if (page_ref_tracepoint_active(__tracepoint_page_ref_mod_and_return)) + __page_ref_mod_and_return(page, 1, ret); + return ret; +} + static inline int page_ref_dec_and_test(struct page *page) { int ret = atomic_dec_and_test(&page->_refcount); |