queue_io() was checking the DMF_SUSPENDED flag rather than the new
DMF_BLOCK_IO flag.  This meant suspend could deadlock under load.
--- diff/drivers/md/dm.c	2003-06-17 10:06:02.000000000 +0100
+++ source/drivers/md/dm.c	2003-06-17 10:06:06.000000000 +0100
@@ -292,7 +292,7 @@
 
 	down_write(&md->lock);
 
-	if (!test_bit(DMF_SUSPENDED, &md->flags)) {
+	if (!test_bit(DMF_BLOCK_IO, &md->flags)) {
 		up_write(&md->lock);
 		free_deferred(di);
 		return 1;
