Thread (4 messages) 4 messages, 2 authors, 2009-05-22

Re: Does raid5 have error handling while reading?

From: NeilBrown <hidden>
Date: 2009-05-22 08:35:48

On Fri, May 22, 2009 6:10 pm, Xu Yuehai wrote:
I know that if the read request of raid5 is handled by
chunk_aligned_read, there is no error handling in raid5. But, if this
read request is not aligned, that's say, raid5 need stripe_head to
deal with this request. I find in the code of 2.6.27 that there is no
error handling if this read request fail, I remember in older kernel,
some operations should be done such as compute_block. Am I right?
If chunk_aligned_read results in an error, then the request
is re-tried through the stripe cache.  I would call that "error handling".

If the cache finds that a drives is failed, the data is calculated
from the other drives, though the code is not a straight forward
as it used to be.
See fetch_block5 which sets STRIPE_OP_COMPUTE_BLK which causes
ops_run_compute5 to do the work (or to schedule the work on separate
hardware).

NeilBrown
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help