Files
linux/drivers
hui jiao 2844dc32ea md/raid5: deadlock between retry_aligned_read with barrier io
A chunk aligned read increases counter active_aligned_reads and
decreases it after sub-device handle it successfully. But when a read
error occurs,  the read redispatched by raid5d, and the
active_aligned_reads will not be decreased until we can grab a stripe
head in retry_aligned_read. Now suppose, a barrier io comes, set
conf->quiesce to 2, and wait until both active_stripes and
active_aligned_reads are zero. The retried chunk aligned read gets
stuck at get_active_stripe waiting until conf->quiesce becomes 0.
Retry_aligned_read and barrier io are waiting each other now.
One possible solution is that we ignore conf->quiesce, let the retried
aligned read finish. I reproduced this deadlock and test this patch on
centos6.0

Signed-off-by: NeilBrown <neilb@suse.de>
2014-06-05 17:18:19 +10:00
..
2014-05-16 23:43:56 +02:00
2014-04-08 13:27:40 +02:00
2014-04-16 12:28:47 -07:00
2014-04-24 12:53:38 -07:00
2014-05-12 00:27:26 -04:00
2014-04-18 16:40:08 -07:00
2014-05-17 15:49:40 -07:00
2014-05-03 18:14:28 -04:00
2014-04-16 14:07:51 -07:00