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 15:47:51 +0000 (08:47 -0700)
commit457ef719563ead5f78cbb2a6394468e2237436b2
tree84517ca4142fa95463f878f36de2378ee427d9f7
parentdf5d64692d422f7df2e3221a95408b4ccf520fd0
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