Trigger event on path bypass.
--- diff/drivers/md/dm-mpath.c	2004-10-29 15:39:19.000000000 +0100
+++ source/drivers/md/dm-mpath.c	2004-10-29 15:39:26.000000000 +0100
@@ -299,9 +299,14 @@
 	dispatch_queued_ios(m);
 }
 
+/*
+ * An event is triggered whenever a path is taken out of use.
+ * Includes path failure and PG bypass.
+ */
 static void trigger_event(void *data)
 {
 	struct multipath *m = (struct multipath *) data;
+
 	dm_table_event(m->ti->table);
 }
 
@@ -685,6 +690,8 @@
 	pg->bypass = bypass;
 	m->current_path = NULL;
 	spin_unlock_irqrestore(&m->lock, flags);
+
+	schedule_work(&m->trigger_event);
 }
 
 /*
