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 -- To unsubscribe from this list: send the line "unsubscribe linux-raid" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html