Index: linux-2.6/mm/filemap.c =================================================================== --- linux-2.6.orig/mm/filemap.c +++ linux-2.6/mm/filemap.c @@ -475,8 +475,8 @@ EXPORT_SYMBOL(wait_on_page_bit); void fastcall unlock_page(struct page *page) { smp_mb__before_clear_bit(); - if (!TestClearPageLocked(page)) - BUG(); + BUG_ON(!PageLocked(page)); + ClearPageLocked(page); smp_mb__after_clear_bit(); wake_up_page(page, PG_locked); }