i think u can try to use it first to understand its usage. then u have a better idea on why they need to implement the code like that way. and i suggest to briefly read md.c to see the whole framework, then read raid0 and 1 code. since they are eaiser to understand. then when u think u fullly understand the code, begin to read raid5. 2.4 code is ok. with raid code done, u can begin to read devicemapper code.