| From: "Matthew Wilcox (Oracle)" <willy@infradead.org> |
| Subject: slub: remove use of page->flags |
| Date: Tue, 26 Mar 2024 17:10:30 +0000 |
| |
| Use slub->__page_flags instead. We can also remove the assertion that |
| it's not a tail page as struct slab never points to a tail page. |
| |
| Link: https://lkml.kernel.org/r/20240326171045.410737-9-willy@infradead.org |
| Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org> |
| Signed-off-by: Andrew Morton <akpm@linux-foundation.org> |
| --- |
| |
| mm/slub.c | 10 ++-------- |
| 1 file changed, 2 insertions(+), 8 deletions(-) |
| |
| --- a/mm/slub.c~slub-remove-use-of-page-flags |
| +++ a/mm/slub.c |
| @@ -616,18 +616,12 @@ slub_set_cpu_partial(struct kmem_cache * |
| */ |
| static __always_inline void slab_lock(struct slab *slab) |
| { |
| - struct page *page = slab_page(slab); |
| - |
| - VM_BUG_ON_PAGE(PageTail(page), page); |
| - bit_spin_lock(PG_locked, &page->flags); |
| + bit_spin_lock(PG_locked, &slab->__page_flags); |
| } |
| |
| static __always_inline void slab_unlock(struct slab *slab) |
| { |
| - struct page *page = slab_page(slab); |
| - |
| - VM_BUG_ON_PAGE(PageTail(page), page); |
| - bit_spin_unlock(PG_locked, &page->flags); |
| + bit_spin_unlock(PG_locked, &slab->__page_flags); |
| } |
| |
| static inline bool |
| _ |