diff -ruNp 900-might-remove.patch-old/fs/buffer.c 900-might-remove.patch-new/fs/buffer.c
--- 900-might-remove.patch-old/fs/buffer.c	2005-07-30 20:28:55.000000000 +1000
+++ 900-might-remove.patch-new/fs/buffer.c	2005-07-30 20:27:58.000000000 +1000
@@ -40,6 +40,8 @@
 #include <linux/cpu.h>
 #include <linux/bitops.h>
 #include <linux/mpage.h>
+#include <linux/init.h>
+#include <linux/swap.h>
 
 static int fsync_buffers_list(spinlock_t *lock, struct list_head *list);
 static void invalidate_bh_lrus(void);
@@ -1104,6 +1106,8 @@ no_grow:
 	 * async buffer heads in use.
 	 */
 	free_more_memory();
+	if (suspend_task == current->pid)
+		suspend2_cleanup_finished_io();
 	goto try_again;
 }
 EXPORT_SYMBOL_GPL(alloc_page_buffers);
diff -ruNp 900-might-remove.patch-old/kernel/exit.c 900-might-remove.patch-new/kernel/exit.c
--- 900-might-remove.patch-old/kernel/exit.c	2005-07-30 20:28:54.000000000 +1000
+++ 900-might-remove.patch-new/kernel/exit.c	2005-07-30 20:27:58.000000000 +1000
@@ -15,6 +15,7 @@
 #include <linux/module.h>
 #include <linux/completion.h>
 #include <linux/personality.h>
+#include <linux/suspend.h>
 #include <linux/tty.h>
 #include <linux/namespace.h>
 #include <linux/key.h>

