diff -urN linux.orig/fs/buffer.c linux.diff/fs/buffer.c
--- linux.orig/fs/buffer.c	Tue Jan  1 14:09:35 2002
+++ linux.diff/fs/buffer.c	Sat Jan 19 03:08:20 2002
@@ -125,8 +125,7 @@
 	clear_bit(BH_launder, &bh->b_state);
 	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/mm/filemap.c linux.diff/mm/filemap.c
--- linux.orig/mm/filemap.c	Sat Jan 19 03:10:09 2002
+++ linux.diff/mm/filemap.c	Sat Jan 19 03:10:44 2002
@@ -801,7 +801,6 @@
 	if (!test_and_clear_bit(PG_locked, &(page)->flags))
 		BUG();
 	smp_mb__after_clear_bit(); 
-	if (waitqueue_active(&(page)->wait))
 	wake_up(&(page)->wait);
 }