commit 4f58802fae8a51d9e79454746584175c14f84519
tree 022533cfacde17b54e8f9b7ac3f12c82ed1c48be
parent 05062d96a23ec0959ee5ea969f40813170c73c0e
author Lars Marowsky-Bree <lmb@suse.de> Wed, 08 Jun 2005 15:50:31 -0700
committer Linus Torvalds <torvalds@ppc970.osdl.org> Wed, 08 Jun 2005 16:21:14 -0700
                                                                                
    [PATCH] dm: Handle READA requests in dm-mpath.c
                                                                                
    READA errors failing with EWOULDBLOCK/EAGAIN do not constitute a valid
    reason for failing the path; this lead to erratic errors on DM multipath
    devices.  This error can be safely propagated upwards without failing the
    path.
                                                                                
    Acked-by: Kevin Corry <kevcorry@us.ibm.com>
    Acked-by: Jens Axboe <axboe@suse.de>
    Signed-off-by: Lars Marowsky-Bree <lmb@suse.de>
    Signed-off-by: Andrew Morton <akpm@osdl.org>
    Signed-off-by: Linus Torvalds <torvalds@osdl.org>

[Upstream]
--- diff/drivers/md/dm-mpath.c	2005-05-04 15:03:56.000000000 +0100
+++ source/drivers/md/dm-mpath.c	2005-06-29 18:05:25.000000000 +0100
@@ -1012,6 +1012,9 @@
 	       mpio->pgpath ? mpio->pgpath->path.dev->name : "NULL",
 	       bio->bi_sector);
 
+	if ((error == -EWOULDBLOCK) && bio_rw_ahead(bio))
+		return error;
+
 	spin_lock(&m->lock);
 	if (!m->nr_valid_paths) {
 		DMWARN("dm-multipath: no valid paths left");
