Clear current path after path reinstatement or bypass flag change.
--- diff/drivers/md/dm-mpath.c	2004-10-29 15:37:52.000000000 +0100
+++ source/drivers/md/dm-mpath.c	2004-10-29 15:37:58.000000000 +0100
@@ -605,6 +605,7 @@
 
 	spin_lock(&m->lock);
 	m->nr_valid_paths++;
+	m->current_path = NULL;
 	spin_unlock(&m->lock);
 
 out:
@@ -641,6 +642,7 @@
 {
 	struct priority_group *pg;
 	unsigned pgnum;
+	unsigned long flags;
 
 	if (!pgstr || (sscanf(pgstr, "%u", &pgnum) != 1) || !pgnum)
 		goto error;
@@ -649,7 +651,11 @@
 		if (--pgnum)
 			continue;
 
+		spin_lock_irqsave(&m->lock, flags);
 		pg->bypass = bypass;
+		m->current_path = NULL;
+		spin_unlock_irqrestore(&m->lock, flags);
+
 		return 0;
 	}
 
