Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 5164bece authored by zhendong chen's avatar zhendong chen Committed by Mike Snitzer
Browse files

dm: fix missed error code if .end_io isn't implemented by target_type



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: default avatarAlex Chen <alex.chen@huawei.com>
Signed-off-by: default avatarMike Snitzer <snitzer@redhat.com>
Fixes: 7eee4ae2 ("dm: disable WRITE SAME if it fails")
Cc: stable@vger.kernel.org
parent 2b94e896
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -899,7 +899,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;