raid5: delayed stripe fix
authorShaohua Li <shli@kernel.org>
Tue, 3 Jul 2012 05:57:19 +0000 (15:57 +1000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 16 Jul 2012 16:04:41 +0000 (09:04 -0700)
commit5bbbd747918d241b41f3220ff26323d7ed943c52
treeb465bd87040429da89b324935074c8e3fc90a9d7
parentc412589f74ab4f1e30bb25b685fe6d95f2befd4d
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: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/md/raid5.c