summaryrefslogtreecommitdiff
path: root/include/linux/page_ref.h
diff options
context:
space:
mode:
authorDavid Hildenbrand <dahi@linux.vnet.ibm.com>2016-06-20 12:09:41 +0200
committerChristian Borntraeger <borntraeger@de.ibm.com>2016-06-21 09:43:04 +0200
commitdf9b2b4a4aa49f874f8507680a533369e4b9c378 (patch)
tree8cbaaa891d43aef8565efa02add892c4901dc102 /include/linux/page_ref.h
parent3d84683bd737e397ae200e881a3230e469c59ad6 (diff)
downloadlwn-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.h9
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);