path->fail_count needs to be initialized to non-zero, or a failed path will
never actually be failed.

Set to 1 for now, but this number can be increased if we don't want to fail
the path on the very first I/O error.
[Kevin Corry]
--- diff/drivers/md/dm-mpath.c	2004-01-05 10:55:55.000000000 +0000
+++ source/drivers/md/dm-mpath.c	2004-01-16 14:35:10.000000000 +0000
@@ -17,6 +17,8 @@
 #include <linux/time.h>
 #include <asm/atomic.h>
 
+#define MPATH_FAIL_COUNT	1
+
 /* Path properties */
 struct path {
 	struct list_head list;
@@ -67,7 +69,7 @@
 
 	if (path) {
 		memset(path, 0, sizeof(*path));
-		atomic_set(&path->fail_count, 0);
+		atomic_set(&path->fail_count, MPATH_FAIL_COUNT);
 		atomic_set(&path->fail_total, 0);
 		init_MUTEX_LOCKED(&path->test_lock); /* resume will unlock */