Add new ps args to status/table output.
--- diff/drivers/md/dm-mpath.c	2004-11-10 15:13:37.000000000 +0000
+++ source/drivers/md/dm-mpath.c	2004-11-10 15:13:44.000000000 +0000
@@ -1024,12 +1024,15 @@
  * Info string has the following format:
  * num_multipath_feature_args [multipath_feature_args]*
  * num_handler_status_args [handler_status_args]*
- * num_groups [A|D|E num_paths num_selector_args [path_dev A|F fail_count [selector_args]* ]+ ]+
+ * num_groups [A|D|E num_ps_status_args [ps_status_args]*
+ *             num_paths num_selector_args 
+ *             [path_dev A|F fail_count [selector_args]* ]+ ]+
  *
  * Table string has the following format (identical to the constructor string):
  * num_feature_args [features_args]*
  * num_handler_args hw_handler [hw_handler_args]*
- * num_groups [priority selector-name num_paths num_selector_args [path_dev [selector_args]* ]+ ]+
+ * num_groups [priority selector-name num_ps_args [ps_args]*
+ *             num_paths num_selector_args [path_dev [selector_args]* ]+ ]+
  */
 static int multipath_status(struct dm_target *ti, status_type_t type,
 			    char *result, unsigned int maxlen)
@@ -1073,6 +1076,13 @@
 			else
 				state = 'E';	/* Enabled */
 
+			if (pg->ps.type->status)
+				sz += pg->ps.type->status(&pg->ps, NULL, type,
+							  result + sz,
+							  maxlen - sz);
+			else
+				DMEMIT("0 ");
+
 			DMEMIT("%c %u %u ", state, pg->nr_paths,
 			       pg->ps.type->info_args);
 
@@ -1093,8 +1103,16 @@
 
 	case STATUSTYPE_TABLE:
 		list_for_each_entry(pg, &m->priority_groups, list) {
-			DMEMIT("%s %u %u ", pg->ps.type->name,
-			       pg->nr_paths, pg->ps.type->table_args);
+			DMEMIT("%s ", pg->ps.type->name);
+
+			if (pg->ps.type->status)
+				sz += pg->ps.type->status(&pg->ps, NULL, type,
+							  result + sz,
+							  maxlen - sz);
+			else
+				DMEMIT("0 ");
+
+			DMEMIT("%u %u ", pg->nr_paths, pg->ps.type->table_args);
 
 			list_for_each_entry(p, &pg->pgpaths, list) {
 				format_dev_t(buffer, p->path.dev->bdev->bd_dev);
--- diff/drivers/md/dm-round-robin.c	2004-11-10 15:13:31.000000000 +0000
+++ source/drivers/md/dm-round-robin.c	2004-11-10 15:13:44.000000000 +0000
@@ -84,15 +84,20 @@
 static int rr_status(struct path_selector *ps, struct path *path,
 		     status_type_t type, char *result, unsigned int maxlen)
 {
-	struct path_info *pi = path->pscontext;
+	struct path_info *pi;
 	int sz = 0;
 
-	switch(type) {
-	case STATUSTYPE_INFO:
-		break;
-	case STATUSTYPE_TABLE:
-		DMEMIT("%u ", pi->repeat_count);
-		break;
+	if (!path)
+		DMEMIT("0 ");
+	else {
+		switch(type) {
+		case STATUSTYPE_INFO:
+			break;
+		case STATUSTYPE_TABLE:
+			pi = path->pscontext;
+			DMEMIT("%u ", pi->repeat_count);
+			break;
+		}
 	}
 
 	return sz;
