Move the pre-suspend.
--- diff/drivers/md/dm.c	2004-11-10 15:14:08.000000000 +0000
+++ source/drivers/md/dm.c	2004-11-10 15:14:15.000000000 +0000
@@ -1044,7 +1044,11 @@
 		return -EINVAL;
 	}
 
+	map = dm_get_table(md);
+	if (map)
+		dm_table_suspend_targets(map, 0);
 	__lock_fs(md);
+
 	up_read(&md->lock);
 
 	/*
@@ -1067,9 +1071,7 @@
 	up_write(&md->lock);
 
 	/* unplug */
-	map = dm_get_table(md);
 	if (map) {
-		dm_table_suspend_targets(map, 0);
 		dm_table_unplug_all(map);
 		dm_table_put(map);
 	}
