--- diff/drivers/md/dm-mpath.c	2004-02-26 09:19:12.000000000 +0000
+++ source/drivers/md/dm-mpath.c	2004-02-25 16:31:23.000000000 +0000
@@ -69,6 +69,7 @@ struct multipath {
 	spinlock_t lock;
 	unsigned nr_valid_paths;
 
+	struct priority_group *current_group;
 	struct path *current_path;
 	unsigned current_count;
 
--- diff/drivers/md/dm-path-selector.h	2004-02-23 13:56:43.000000000 +0000
+++ source/drivers/md/dm-path-selector.h	2004-02-25 16:27:49.000000000 +0000
@@ -41,6 +41,12 @@ typedef	int (*ps_add_path_fn) (struct pa
 			       int argc, char **argv, char **error);
 
 /*
+ * This method will be called to prepare all the paths in this
+ * selector.
+ */
+typedef int (*ps_activate_fn) (struct path_selector *ps);
+
+/*
  * Chooses a path for this io, if no paths are available then
  * NULL will be returned. The selector may set the map_info
  * object if it wishes, this will be fed back into the endio fn.
@@ -74,6 +80,7 @@ struct path_selector_type {
 	ps_ctr_fn ctr;
 	ps_dtr_fn dtr;
 
+	ps_activate_fn activate;
 	ps_add_path_fn add_path;
 	ps_fail_path_fn fail_path;
 	ps_select_path_fn select_path;
