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

Reply via email to