[patch] [2.6.12-rc6-mm1] Handle READA requests in dm-mpath.c

From: Lars Marowsky-Bree
Date: Wed Jun 08 2005 - 06:06:59 EST


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@xxxxxxxxxx>
Acked-by: Jens Axboe <axboe@xxxxxxx>
Signed-off-by: Lars Marowsky-Bree <lmb@xxxxxxx>

--- linux-2.6.12-rc6-mm1.orig/drivers/md/dm-mpath.c 2005-06-08 12:51:02.741055000 +0200
+++ linux-2.6.12-rc6-mm1/drivers/md/dm-mpath.c 2005-06-08 12:57:55.757828867 +0200
@@ -985,6 +985,9 @@
if (!error)
return 0; /* I/O complete */

+ if ((error == -EWOULDBLOCK) && bio_rw_ahead(bio))
+ return error;
+
spin_lock(&m->lock);
if (!m->nr_valid_paths) {
if (!m->queue_if_no_path || m->suspended) {


--
High Availability & Clustering
SUSE Labs, Research and Development
SUSE LINUX Products GmbH - A Novell Business -- Charles Darwin
"Ignorance more frequently begets confidence than does knowledge"

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/