Gitweb: http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=5577bd8a85c8b7643a241789b14fafa9c8a6c7db Commit: 5577bd8a85c8b7643a241789b14fafa9c8a6c7db Parent: eefaca9c3246f3daf56e7ed02987f79abcee7087 Author: Christoph Lameter <[EMAIL PROTECTED]> AuthorDate: Wed May 16 22:10:56 2007 -0700 Committer: Linus Torvalds <[EMAIL PROTECTED]> CommitDate: Thu May 17 05:23:03 2007 -0700
SLUB: Do our own flags based on PG_active and PG_error The atomicity when handling flags in SLUB is not necessary since both flags used by SLUB are not updated in a racy way. Flag updates are either done during slab creation or destruction or under slab_lock. Some of these flags do not have the non atomic variants that we need. So define our own. Signed-off-by: Christoph Lameter <[EMAIL PROTECTED]> Signed-off-by: Andrew Morton <[EMAIL PROTECTED]> Signed-off-by: Linus Torvalds <[EMAIL PROTECTED]> --- mm/slub.c | 28 ++++++++++++++-------------- 1 files changed, 14 insertions(+), 14 deletions(-) diff --git a/mm/slub.c b/mm/slub.c index ce96d48..3ca164f 100644 --- a/mm/slub.c +++ b/mm/slub.c @@ -99,42 +99,42 @@ * the fast path and disables lockless freelists. */ +#define FROZEN (1 << PG_active) + +#ifdef CONFIG_SLUB_DEBUG +#define SLABDEBUG (1 << PG_error) +#else +#define SLABDEBUG 0 +#endif + static inline int SlabFrozen(struct page *page) { - return PageActive(page); + return page->flags & FROZEN; } static inline void SetSlabFrozen(struct page *page) { - SetPageActive(page); + page->flags |= FROZEN; } static inline void ClearSlabFrozen(struct page *page) { - ClearPageActive(page); + page->flags &= ~FROZEN; } static inline int SlabDebug(struct page *page) { -#ifdef CONFIG_SLUB_DEBUG - return PageError(page); -#else - return 0; -#endif + return page->flags & SLABDEBUG; } static inline void SetSlabDebug(struct page *page) { -#ifdef CONFIG_SLUB_DEBUG - SetPageError(page); -#endif + page->flags |= SLABDEBUG; } static inline void ClearSlabDebug(struct page *page) { -#ifdef CONFIG_SLUB_DEBUG - ClearPageError(page); -#endif + page->flags &= ~SLABDEBUG; } /* - To unsubscribe from this list: send the line "unsubscribe git-commits-head" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html