提交 4f58802f 编写于 作者: L Lars Marowsky-Bree 提交者: Linus Torvalds

[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: NKevin Corry <kevcorry@us.ibm.com>
Acked-by: NJens Axboe <axboe@suse.de>
Signed-off-by: NLars Marowsky-Bree <lmb@suse.de>
Signed-off-by: NAndrew Morton <akpm@osdl.org>
Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
上级 05062d96
......@@ -985,6 +985,9 @@ static int do_end_io(struct multipath *m, struct bio *bio,
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) {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册