[dm-devel] mirroring: [patch 6 of 6] device failure tolerance

Jonathan E Brassow jbrassow at redhat.com
Thu Jun 30 08:04:21 UTC 2005


This patch changes how suspend works in dm.c (dm_suspend).  As a 
result, it breaks multipath.  It is necessary for cluster mirroring to 
ensure that a suspend happens before other nodes have a chance at 
getting an inconsistent read.

  brassow

diff -urN linux-2.6.12-00005/drivers/md/dm.c 
linux-2.6.12-00006/drivers/md/dm.c
--- linux-2.6.12-00005/drivers/md/dm.c	2005-06-17 14:48:29.000000000 
-0500
+++ linux-2.6.12-00006/drivers/md/dm.c	2005-06-30 01:06:36.146154215 
-0500
@@ -1055,14 +1055,14 @@
  	if (test_bit(DMF_BLOCK_IO, &md->flags))
  		goto out_read_unlock;

-	error = __lock_fs(md);
-	if (error)
-		goto out_read_unlock;
-
  	map = dm_get_table(md);
  	if (map)
  		dm_table_presuspend_targets(map);

+	error = __lock_fs(md);
+	if (error)
+		goto out_read_unlock;
+
  	up_read(&md->lock);

  	/*




More information about the dm-devel mailing list