[dm-devel] [patch] [2.6.12-rc6-mm1] Handle READA requests in dm-mpath.c
Lars Marowsky-Bree
lmb at suse.de
Wed Jun 8 11:04:36 UTC 2005
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 at us.ibm.com>
Acked-by: Jens Axboe <axboe at suse.de>
Signed-off-by: Lars Marowsky-Bree <lmb at suse.de>
--- 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"
More information about the dm-devel
mailing list