[PATCH 3.16.y-ckt 184/216] dm: fix missed error code if .end_io isn't implemented by target_type
Luis Henriques
luis.henriques at canonical.com
Mon Jan 12 18:29:22 UTC 2015
3.16.7-ckt4 -stable review patch. If anyone has any objections, please let me know.
------------------
From: zhendong chen <alex.chen at huawei.com>
commit 5164bece1673cdf04782f8ed3fba70743700f5da upstream.
In bio-based DM's clone_endio(), when target_type doesn't implement
.end_io (e.g. linear) r will be always be initialized 0. So if a
WRITE SAME bio fails WRITE SAME will not be disabled as intended.
Fix this by initializing r to error, rather than 0, in clone_endio().
Signed-off-by: Alex Chen <alex.chen at huawei.com>
Signed-off-by: Mike Snitzer <snitzer at redhat.com>
Fixes: 7eee4ae2db ("dm: disable WRITE SAME if it fails")
Signed-off-by: Luis Henriques <luis.henriques at canonical.com>
---
drivers/md/dm.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/md/dm.c b/drivers/md/dm.c
index 32b958dbc499..00a6cff2fffd 100644
--- a/drivers/md/dm.c
+++ b/drivers/md/dm.c
@@ -776,7 +776,7 @@ static void disable_write_same(struct mapped_device *md)
static void clone_endio(struct bio *bio, int error)
{
- int r = 0;
+ int r = error;
struct dm_target_io *tio = container_of(bio, struct dm_target_io, clone);
struct dm_io *io = tio->io;
struct mapped_device *md = tio->io->md;
--
2.1.4
More information about the kernel-team
mailing list