[dm-devel] [2.6.22 PATCH 25/26] dm raid1: switch rh_in_sync to blocking in do_reads

Alasdair G Kergon agk at redhat.com
Tue May 8 19:49:17 UTC 2007


From: Jonathan Brassow <jbrassow at redhat.com>

The call to rh_in_sync() in do_reads() should be allowed to block.  It
is in the mirror worker thread which already permits blocking
operations.  This will be needed to support clustered mirroring which
will perform network operations.

Signed-off-by: Jonathan Brassow <jbrassow at redhat.com>
Signed-off-by: Alasdair G Kergon <agk at redhat.com>

---
 drivers/md/dm-raid1.c |    2 +-
 1 files changed, 1 insertion(+), 1 deletion(-)

Index: linux-2.6.21/drivers/md/dm-raid1.c
===================================================================
--- linux-2.6.21.orig/drivers/md/dm-raid1.c	2007-05-01 19:20:17.000000000 +0100
+++ linux-2.6.21/drivers/md/dm-raid1.c	2007-05-01 19:20:19.000000000 +0100
@@ -741,7 +741,7 @@ static void do_reads(struct mirror_set *
 		/*
 		 * We can only read balance if the region is in sync.
 		 */
-		if (rh_in_sync(&ms->rh, region, 0))
+		if (rh_in_sync(&ms->rh, region, 1))
 			m = choose_mirror(ms, bio->bi_sector);
 		else
 			m = ms->default_mirror;




More information about the dm-devel mailing list