]> git.baikalelectronics.ru Git - kernel.git/commit
md/raid1: abort delayed writes when device fails.
authorNeilBrown <neilb@suse.com>
Fri, 4 Nov 2016 05:46:03 +0000 (16:46 +1100)
committerShaohua Li <shli@fb.com>
Mon, 7 Nov 2016 23:08:23 +0000 (15:08 -0800)
commit97c174f9810ca95e4f4df016bf22ae5e80e9dc10
treed7618a423b48af572c9f0af614bb9d4d764394dc
parent408805557445f2030917dc833c79402e1b70915e
md/raid1: abort delayed writes when device fails.

When writing to an array with a bitmap enabled, the writes are grouped
in batches which are preceded by an update to the bitmap.

It is quite likely if that a drive develops a problem which is not
media related, that the bitmap write will be the first to report an
error and cause the device to be marked faulty (as the bitmap write is
at the start of a batch).

In this case, there is point submiting the subsequent writes to the
failed device - that just wastes times.

So re-check the Faulty state of a device before submitting a
delayed write.

This requires that we keep the 'rdev', rather than the 'bdev' in the
bio, then swap in the bdev just before final submission.

Signed-off-by: NeilBrown <neilb@suse.com>
Signed-off-by: Shaohua Li <shli@fb.com>
drivers/md/raid1.c