Hi folks, Can someone please help me with below doubts. Thanks in advance !! On Tue, Apr 24, 2012 at 7:36 PM, Anuj Goel <agoel@xxxxxxxxxxxxxxxxx> wrote: > Hi, > > I have been looking into the RAID5 code, but unable to find how a disk > is marked faulty in a RAID5 array. > I consider the case when we try to read, say 2 sectors within a chunk > and the read fails. My understanding so far is as below: > > The status of the read operation is returned in the call back function > "raid5_align_endio" registered in chunk-aligned_read(). > If there was an error in the read, it LIFO adds the original bio to > the retry list and wakes up the raid5d thread. > This thread will remove the bio from the retry list and send it to > retry_aligned_read(). > > In retry_aligned_read(), we first compute the disk number and sector > offset within the disk using raid5_compute_sector(). > > 1. Then we do some stripe operations, but I cannot see where the > actual read from the disk is scheduled. > 2. Also, if the sector on the disk is found unreadable, according to > the RAID5 design, it should be recomputed using parity and the disk > marked FAULTY. Can you please point me to the code/functions I should > look into to understand how this is being done. > 3. After one disk failure, if another disk fails, I think the RAID5 > array cannot be used anymore. How is the second disk failure reported > ? > > This is my first tryst with Linux code, (specifically software RAID), > so I am not sure how to debug and understand the code flow. > Is code reading the only way to understand the flow, or is there some > documentation giving a high level overview of the implementation of > software RAID ? > > Any suggestions will be highly appreciated !! > > -- > Best Regards, > Anuj Goel > Experimental Computer Science Lab > Stony Brook University. -- Best Regards, Anuj Goel Experimental Computer Science Lab Stony Brook University. -- 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