raid5: delayed stripe fix
authorShaohua Li <shli@kernel.org>
Tue, 3 Jul 2012 05:57:19 +0000 (15:57 +1000)
committerBen Hutchings <ben@decadent.org.uk>
Wed, 25 Jul 2012 03:10:54 +0000 (04:10 +0100)
commitc0159c780e8d42309d04e83271986274d3880826
tree946c872d8cb7b3f9c371034a07645a4bbab14d3f
parent60b179a2ff59ad09e8217e9dd7266fb23a080ded
raid5: delayed stripe fix

commit fab363b5ff502d1b39ddcfec04271f5858d9f26e upstream.

There isn't locking setting STRIPE_DELAYED and STRIPE_PREREAD_ACTIVE bits, but
the two bits have relationship. A delayed stripe can be moved to hold list only
when preread active stripe count is below IO_THRESHOLD. If a stripe has both
the bits set, such stripe will be in delayed list and preread count not 0,
which will make such stripe never leave delayed list.

Signed-off-by: Shaohua Li <shli@fusionio.com>
Signed-off-by: NeilBrown <neilb@suse.de>
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
drivers/md/raid5.c