diff options
author | Nick Piggin <nickpiggin@yahoo.com.au> | 2005-09-03 15:54:50 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@evo.osdl.org> | 2005-09-05 00:05:44 -0700 |
commit | 242e54686257493f0b10ac557e730419d9af7d24 (patch) | |
tree | d68754b32c531141969a09ca0c5df246893c5b1e | |
parent | 9a61c349b28ec5aef7e929236571fd770fdef0bb (diff) | |
download | op-kernel-dev-242e54686257493f0b10ac557e730419d9af7d24.zip op-kernel-dev-242e54686257493f0b10ac557e730419d9af7d24.tar.gz |
[PATCH] mm: remove atomic
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>
-rw-r--r-- | include/linux/page-flags.h | 1 | ||||
-rw-r--r-- | mm/page_alloc.c | 2 |
2 files changed, 2 insertions, 1 deletions
diff --git a/include/linux/page-flags.h b/include/linux/page-flags.h index f5a6695..99f7cc4 100644 --- a/include/linux/page-flags.h +++ b/include/linux/page-flags.h @@ -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) diff --git a/mm/page_alloc.c b/mm/page_alloc.c index 8d08837..620aa11 100644 --- a/mm/page_alloc.c +++ b/mm/page_alloc.c @@ -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); } /* |