diff -urN oldtree/kernel/power/swap.c newtree/kernel/power/swap.c
--- oldtree/kernel/power/swap.c	2006-08-18 15:01:22.000000000 -0400
+++ newtree/kernel/power/swap.c	2006-08-20 04:32:32.755172750 -0400
@@ -217,7 +217,6 @@
 	bio = *bio_chain;
 	if (bio == NULL)
 		return 0;
-	generic_unplug_device(bdev_get_queue(bio->bi_bdev));
 	while (bio) {
 		struct page *page;
 
@@ -429,7 +428,7 @@
 		get_page(page);
 		bio->bi_private = *bio_chain;
 		*bio_chain = bio;
-		submit_bio(rw, bio);
+		submit_bio(rw | (1 << BIO_RW_SYNC), bio);
 	}
 	return 0;
 }
