Bug fixes
--- diff/drivers/md/dm-mpath.c	2003-12-29 10:16:28.000000000 +0000
+++ source/drivers/md/dm-mpath.c	2003-12-29 10:16:34.000000000 +0000
@@ -216,6 +216,7 @@
 	r = read_param(_params + 1, argv[2], &p->fail_limit, &ti->error);
 	if (r)
 		goto bad;
+	atomic_set(&p->fail_count, p->fail_limit);
 
 	r = m->ps.type->add_path(&m->ps, p, argc - 3, argv + 3, &ti->error);
 	if (r)
--- diff/drivers/md/dm-path-selector.c	2003-12-29 10:16:16.000000000 +0000
+++ source/drivers/md/dm-path-selector.c	2003-12-29 10:16:34.000000000 +0000
@@ -288,7 +288,7 @@
 	atomic_set(&pi->io_count, min_io);
 
 	spin_lock(&s->lock);
-	list_add_tail(&pi->list, &s->valid_paths);
+	path_insert(&s->valid_paths, pi);
 	spin_unlock(&s->lock);
 
 	return 0;
@@ -315,8 +315,7 @@
 		DMWARN("asked to change the state of an unknown path");
 
 	else
-		list_move_tail(&pi->list, valid ?
-			       &s->valid_paths : &s->invalid_paths);
+		path_insert(valid ? &s->valid_paths : &s->invalid_paths, pi);
 
 	spin_unlock_irqrestore(&s->lock, flags);
 }