[PATCH] mm: remove atomic
Nick Piggin [Sat, 3 Sep 2005 22:54:50 +0000 (15:54 -0700)]
This bitop does not need to be atomic because it is performed when there will
be no references to the page (ie.  the page is being freed).

Signed-off-by: Nick Piggin <npiggin@suse.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>

include/linux/page-flags.h
mm/page_alloc.c

index f5a6695..99f7cc4 100644 (file)
@@ -194,6 +194,7 @@ extern void __mod_page_state(unsigned long offset, unsigned long delta);
 #define SetPageDirty(page)     set_bit(PG_dirty, &(page)->flags)
 #define TestSetPageDirty(page) test_and_set_bit(PG_dirty, &(page)->flags)
 #define ClearPageDirty(page)   clear_bit(PG_dirty, &(page)->flags)
+#define __ClearPageDirty(page) __clear_bit(PG_dirty, &(page)->flags)
 #define TestClearPageDirty(page) test_and_clear_bit(PG_dirty, &(page)->flags)
 
 #define SetPageLRU(page)       set_bit(PG_lru, &(page)->flags)
index 8d08837..620aa11 100644 (file)
@@ -329,7 +329,7 @@ static inline void free_pages_check(const char *function, struct page *page)
                        1 << PG_writeback )))
                bad_page(function, page);
        if (PageDirty(page))
-               ClearPageDirty(page);
+               __ClearPageDirty(page);
 }
 
 /*