m->path_lock needs to be locked with spin_lock_irqsave() and unlocked with
spin_lock_irqrestore().  [Kevin Corry]
--- diff/drivers/md/dm-mpath.c	2004-01-16 14:39:33.000000000 +0000
+++ source/drivers/md/dm-mpath.c	2004-01-16 14:40:56.000000000 +0000
@@ -689,11 +689,11 @@
 	if (error) {
 		struct path *path;
 
-		spin_lock(&m->path_lock);
+		spin_lock_irqsave(&m->path_lock, flags);
 		path = __find_path(m, bio->bi_bdev);
 		__fail_path(path);
 		r = __remap_io(m, bio);
-		spin_unlock(&m->path_lock);
+		spin_unlock_irqrestore(&m->path_lock, flags);
 
 		if (!r) {
 			/* queue for the daemon to resubmit */
