NeilBrown d0852df543 md/raid5: close race between STRIPE_BIT_DELAY and batching.
When we add a write to a stripe we need to make sure the bitmap
bit is set.  While doing that the stripe is not locked so it could
be added to a batch after which further changes to STRIPE_BIT_DELAY
and ->bm_seq are ineffective.

So we need to hold off adding to a stripe until bitmap_startwrite has
completed at least once, and we need to avoid further changes to
STRIPE_BIT_DELAY once the stripe has been added to a batch.

If a bitmap_startwrite() completes after the stripe was added to a
batch, it will not have set the bit, only incremented a counter, so no
extra delay of the stripe is needed.

Reported-by: Shaohua Li <shli@kernel.org>
Signed-off-by: NeilBrown <neilb@suse.de>
2015-05-28 11:34:40 +10:00
..
2015-04-16 13:53:32 -05:00
2015-04-22 09:18:17 -07:00
2015-04-21 09:42:58 -07:00
2015-04-22 09:18:17 -07:00
2015-04-22 09:04:39 -07:00
2015-04-17 15:32:07 -04:00
2015-04-26 13:36:02 -07:00
2015-04-24 08:23:45 -07:00
2015-04-22 09:18:17 -07:00
2015-04-26 13:36:02 -07:00
2015-04-21 09:42:58 -07:00
2015-04-30 16:48:53 -04:00
2015-04-07 12:05:12 +02:00
2015-04-24 08:46:18 -07:00
2015-04-16 14:01:03 -05:00
2015-04-22 09:04:39 -07:00
2015-04-13 17:07:21 -07:00
2015-04-15 10:02:42 +02:00
2015-04-26 13:44:46 -07:00
2015-04-23 16:55:50 +02:00
2015-04-27 10:10:19 -07:00
2015-04-08 08:11:51 -06:00
2015-04-20 15:16:25 -07:00