Patch "dm flakey: fix reads to be issued if drop_writes configured" has been added to the 4.7-stable tree
Subsystems (2)
This is a note to let you know that I've just added the patch titled
dm flakey: fix reads to be issued if drop_writes configured
to the 4.7-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
dm-flakey-fix-reads-to-be-issued-if-drop_writes-configured.patch
and it can be found in the queue-4.7 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From
299f6230bc6d0ccd5f95bb0fb865d80a9c7d5cccMon Sep 17 00:00:00 2001
From: Mike Snitzer <[email protected]>
Date: Wed, 24 Aug 2016 21:12:58 -0400
Subject: dm flakey: fix reads to be issued if drop_writes configured
From: Mike Snitzer <[email protected]>
commit 299f6230bc6d0ccd5f95bb0fb865d80a9c7d5ccc upstream.
v4.8-rc3 commit 99f3c90d0d ("dm flakey: error READ bios during the down_interval") overlooked the 'drop_writes' feature, which is meant to allow reads to be issued rather than errored, during the down_interval.
--- drivers/md/dm-flakey.c | 27 ++++++++++++++++----------- 1 file changed, 16 insertions(+), 11 deletions(-)
drivers/md/dm-flakey.c +16 -11
@@ -289,15 +289,13 @@ static int flakey_map(struct dm_target * pb->bio_submitted = true;/* -* Map reads as normal only if corrupt_bio_byte set. +* Error reads if neither corrupt_bio_byte or drop_writes are set. +* Otherwise, flakey_end_io() will decide if the reads should be modified. */ if (bio_data_dir (bio) ==READ ) { -/* If flags were specified, only corrupt those that match. */ -if (fc->corrupt_bio_byte && (fc->corrupt_bio_rw ==READ ) && -all_corrupt_bio_flags_match (bio, fc)) - goto map_bio; -else +if (!fc->corrupt_bio_byte && !test_bit (DROP_WRITES , &fc->flags))return -EIO ; + goto map_bio; }/*
@@ -334,14 +332,21 @@ static int flakey_end_io(struct dm_targestruct flakey_c *fc = ti->private;struct per_bio_data *pb =dm_per_bio_data (bio,sizeof (struct per_bio_data )); -/* -* Corrupt successful READs while in down state. -*/ if (!error && pb->bio_submitted && (bio_data_dir (bio) ==READ )) { -if (fc->corrupt_bio_byte) +if (fc->corrupt_bio_byte && (fc->corrupt_bio_rw ==READ ) && +all_corrupt_bio_flags_match (bio, fc)) { +/* +* Corrupt successful matching READs while in down state. +*/ corrupt_bio_data (bio, fc); -else + + }else if (!test_bit (DROP_WRITES , &fc->flags)) { +/* +* Error read during the down_interval if drop_writes +* wasn't configured. +*/ return -EIO ; + } }return error;
Patches currently in stable-queue which might be from [email protected] are
queue-4.7/dm-flakey-fix-reads-to-be-issued-if-drop_writes-configured.patch queue-4.7/dm-crypt-fix-error-with-too-large-bios.patch queue-4.7/dm-log-writes-fix-check-of-kthread_run-return-value.patch queue-4.7/dm-log-writes-move-io-accounting-earlier-to-fix-error-path.patch queue-4.7/dm-crypt-fix-free-of-bad-values-after-tfm-allocation-failure.patch