dm_suspend(): Don't unlock the fs if a race with another suspend is
detected.
--- diff/drivers/md/dm.c	2004-02-27 11:38:08.000000000 +0000
+++ source/drivers/md/dm.c	2004-02-27 14:47:04.000000000 +0000
@@ -895,7 +895,11 @@ int dm_suspend(struct mapped_device *md)
 	 */
 	down_write(&md->lock);
 	if (test_bit(DMF_BLOCK_IO, &md->flags)) {
-		__unlock_fs(md);
+		/*
+		 * If we get here we know another thread is
+		 * trying to suspend as well, so we leave the fs
+		 * locked for this thread.
+		 */
 		up_write(&md->lock);
 		return -EINVAL;
 	}
