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 2002-11-29 15:06:54.000000000 +0000
+++ source/drivers/md/dm.c 2002-12-04 15:35:37.000000000 +0000
@@ -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;