Bug fixes --- diff/drivers/md/dm-mpath.c 2003-11-26 10:22:02.000000000 +0000 +++ source/drivers/md/dm-mpath.c 2003-11-26 11:33:42.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-11-26 10:21:50.000000000 +0000 +++ source/drivers/md/dm-path-selector.c 2003-11-26 11:52:38.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); }