diff -urN linux.orig/fs/buffer.c linux.diff/fs/buffer.c
--- linux.orig/fs/buffer.c	Fri Jan 11 15:29:58 2002
+++ linux.diff/fs/buffer.c	Mon Jan 14 16:44:28 2002
@@ -140,8 +140,7 @@
 {
 	clear_bit(BH_Lock, &bh->b_state);
 	smp_mb__after_clear_bit();
-	if (waitqueue_active(&bh->b_wait))
-		wake_up(&bh->b_wait);
+	wake_up(&bh->b_wait);
 }
 
 /*
diff -urN linux.orig/include/linux/mm.h linux.diff/include/linux/mm.h
--- linux.orig/include/linux/mm.h	Fri Jan 11 15:29:58 2002
+++ linux.diff/include/linux/mm.h	Mon Jan 14 16:44:28 2002
@@ -322,8 +322,7 @@
 					smp_mb__before_clear_bit(); \
 					if (!test_and_clear_bit(PG_locked, &(page)->flags)) BUG(); \
 					smp_mb__after_clear_bit(); \
-					if (waitqueue_active(&(page)->wait)) \
-						wake_up(&(page)->wait); \
+					wake_up(&(page)->wait); \
 				} while (0)
 #define PageError(page)		test_bit(PG_error, &(page)->flags)
 #define SetPageError(page)	set_bit(PG_error, &(page)->flags)