[PATCH --resend 2/2] md/multipath: disable WRITE SAME if it fails for multipath
From: Shaohua Li <hidden>
Date: 2017-02-13 19:55:48
Subsystem:
the rest · Maintainer:
Linus Torvalds
From: Shaohua Li <hidden>
Date: 2017-02-13 19:55:48
Subsystem:
the rest · Maintainer:
Linus Torvalds
This is the part for multipath. Since multipatch already attaches private data into original bio, we just disable write same there. Signed-off-by: Shaohua Li <redacted> --- drivers/md/multipath.c | 4 ++++ 1 file changed, 4 insertions(+)
diff --git a/drivers/md/multipath.c b/drivers/md/multipath.c
index aa8c4e5c..5ee9579 100644
--- a/drivers/md/multipath.c
+++ b/drivers/md/multipath.c@@ -89,6 +89,10 @@ static void multipath_end_request(struct bio *bio) struct mpconf *conf = mp_bh->mddev->private; struct md_rdev *rdev = conf->multipaths[mp_bh->path].rdev; + if (bio_op(bio) == REQ_OP_WRITE_SAME && bio->bi_error == -EREMOTEIO && + !bdev_get_queue(bio->bi_bdev)->limits.max_write_same_sectors) + mp_bh->mddev->queue->limits.max_write_same_sectors = 0; + if (!bio->bi_error) multipath_end_bh_io(mp_bh, 0); else if (!(bio->bi_opf & REQ_RAHEAD)) {
--
2.9.3