diff options
author | NeilBrown <neilb@suse.com> | 2016-11-18 16:16:12 +1100 |
---|---|---|
committer | Shaohua Li <shli@fb.com> | 2016-11-22 09:14:28 -0800 |
commit | 8d3ca83dcf9ca3d58822eddd279918d46f41e9ff (patch) | |
tree | 27c06b0345db76be8c89fcf078404786b95b1b21 /drivers/md/raid10.h | |
parent | 212e7eb7a3403464a796c05c2fc46cae3b62d803 (diff) | |
download | linux-stable-8d3ca83dcf9ca3d58822eddd279918d46f41e9ff.tar.gz linux-stable-8d3ca83dcf9ca3d58822eddd279918d46f41e9ff.tar.bz2 linux-stable-8d3ca83dcf9ca3d58822eddd279918d46f41e9ff.zip |
md/raid10: add failfast handling for reads.
If a device is marked FailFast, and it is not the only
device we can read from, we mark the bio as MD_FAILFAST.
If this does fail-fast, we don't try read repair but just
allow failure.
If it was the last device, it doesn't get marked Faulty so
the retry happens on the same device - this time without
FAILFAST. A subsequent failure will not retry but will just
pass up the error.
During resync we may use FAILFAST requests, and on a failure
we will simply use the other device(s).
During recovery we will only use FAILFAST in the unusual
case were there are multiple places to read from - i.e. if
there are > 2 devices. If we get a failure we will fail the
device and complete the resync/recovery with remaining
devices.
Signed-off-by: NeilBrown <neilb@suse.com>
Signed-off-by: Shaohua Li <shli@fb.com>
Diffstat (limited to 'drivers/md/raid10.h')
-rw-r--r-- | drivers/md/raid10.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/md/raid10.h b/drivers/md/raid10.h index 18ec1f7a98bf..3162615e57bd 100644 --- a/drivers/md/raid10.h +++ b/drivers/md/raid10.h @@ -156,5 +156,7 @@ enum r10bio_state { * flag is set */ R10BIO_Previous, +/* failfast devices did receive failfast requests. */ + R10BIO_FailFast, }; #endif |