Commit c0a5d93a authored by Kemeng Shi's avatar Kemeng Shi Committed by Andrew Morton

mm/page_ext: add common function to get client data from page_ext

Patch series "add page_ext_data to get client data in page_ext".

Current clients get data from page_ext by adding offset which is auto
generated in page_ext core and exposes the data layout design inside
page_ext core.  This series adds a page_ext_data() to hide this from
clients.  

Benefits include:

1. Future clients can call page_ext_data directly instead of defining
   a new function like get_page_owner to get the data.

2. There is no change to clients if the layout of page_ext data changes.


This patch (of 3):

Add common page_ext_data function to get client data.  This could hide
offset which is auto generated in page_ext core and expose the desgin of
page_ext data layout.

Link: https://lkml.kernel.org/r/20230718145812.1991717-1-shikemeng@huaweicloud.com
Link: https://lkml.kernel.org/r/20230718145812.1991717-2-shikemeng@huaweicloud.comSigned-off-by: default avatarKemeng Shi <shikemeng@huaweicloud.com>
Reviewed-by: default avatarAndrew Morton <akpm@linux-foudation.org>
Acked-by: default avatarMike Rapoport (IBM) <rppt@kernel.org>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
parent ca54f6d8
...@@ -82,6 +82,12 @@ static inline void page_ext_init(void) ...@@ -82,6 +82,12 @@ static inline void page_ext_init(void)
extern struct page_ext *page_ext_get(struct page *page); extern struct page_ext *page_ext_get(struct page *page);
extern void page_ext_put(struct page_ext *page_ext); extern void page_ext_put(struct page_ext *page_ext);
static inline void *page_ext_data(struct page_ext *page_ext,
struct page_ext_operations *ops)
{
return (void *)(page_ext) + ops->offset;
}
static inline struct page_ext *page_ext_next(struct page_ext *curr) static inline struct page_ext *page_ext_next(struct page_ext *curr)
{ {
void *next = curr; void *next = curr;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment