Missing sz update in status
Missing dm_put_path_selector
Missing statics
--- diff/drivers/md/dm-mpath.c	2004-09-28 16:07:46.000000000 +0100
+++ source/drivers/md/dm-mpath.c	2004-09-28 16:11:40.000000000 +0100
@@ -164,7 +164,7 @@
 		INIT_WORK(&m->dispatch_failed, dispatch_failed_ios, m);
 		INIT_WORK(&m->trigger_event, trigger_event, m);
 		m->mpio_pool = mempool_create(MIN_IOS, mempool_alloc_slab,
-						 mempool_free_slab, _mpio_cache);
+					      mempool_free_slab, _mpio_cache);
 		if (!m->mpio_pool) {
 			kfree(m);
 			return NULL;
@@ -386,8 +386,7 @@
 
 	r = pst->ctr(&pg->ps);
 	if (r) {
-		/* FIXME: need to put the pst ? fix after
-		 * factoring out the register */
+		dm_put_path_selector(pst);
 		goto bad;
 	}
 	pg->ps.type = pst;
@@ -607,7 +606,7 @@
 				spin_lock_irqsave(&p->failed_lock, flags);
 				DMEMIT("%s %s %u ", buffer,
 				     p->has_failed ? "F" : "A", p->fail_count);
-				pg->ps.type->status(&pg->ps, p, type,
+				sz += pg->ps.type->status(&pg->ps, p, type,
 						     result + sz, maxlen - sz);
 				spin_unlock_irqrestore(&p->failed_lock, flags);
 			}
@@ -624,7 +623,7 @@
 			list_for_each_entry(p, &pg->paths, list) {
 				format_dev_t(buffer, p->dev->bdev->bd_dev);
 				DMEMIT("%s ", buffer);
-				pg->ps.type->status(&pg->ps, p, type,
+				sz += pg->ps.type->status(&pg->ps, p, type,
 						     result + sz, maxlen - sz);
 
 			}
@@ -649,13 +648,13 @@
 	.status = multipath_status,
 };
 
-int __init dm_multipath_init(void)
+static int __init dm_multipath_init(void)
 {
 	int r;
 
 	/* allocate a slab for the dm_ios */
 	_mpio_cache = kmem_cache_create("dm_mpath", sizeof(struct mpath_io),
-					   0, 0, NULL, NULL);
+					0, 0, NULL, NULL);
 	if (!_mpio_cache)
 		return -ENOMEM;
 
@@ -677,7 +676,7 @@
 	return r;
 }
 
-void __exit dm_multipath_exit(void)
+static void __exit dm_multipath_exit(void)
 {
 	int r;
 
