dm.c: changes to use new VFS lock patch.  [Kevin Corry]
--- diff/drivers/md/dm.c	2004-04-06 15:54:23.025006488 +0100
+++ source/drivers/md/dm.c	2004-04-06 15:54:26.962407912 +0100
@@ -82,6 +82,11 @@ struct mapped_device {
 	 */
 	uint32_t event_nr;
 	wait_queue_head_t eventq;
+
+	/*
+	 * freeze/thaw support require holding onto a super block
+	 */
+	struct super_block *frozen_sb;
 };
 
 #define MIN_IOS 256
@@ -910,8 +915,12 @@ static int __lock_fs(struct mapped_devic
 		return -ENOMEM;
 	}
 
-	//fsync_bdev_lockfs(bdev);
-	bdput(bdev);
+	WARN_ON(md->frozen_sb);
+	md->frozen_sb = freeze_bdev(bdev);
+	/* don't bdput right now, we don't want the bdev
+	 * to go away while it is locked.  We'll bdput
+	 * in __unlock_fs
+	 */
 	return 0;
 }
 
@@ -928,7 +937,9 @@ static int __unlock_fs(struct mapped_dev
 		return -ENOMEM;
 	}
 
-	//unlockfs(bdev);
+	thaw_bdev(bdev, md->frozen_sb);
+	md->frozen_sb = NULL;
+	bdput(bdev);
 	bdput(bdev);
 	return 0;
 }