linux内核奇遇记之md源代码解读之十raid5数据流之同步数据流程
linux内核奇遇记之md源代码解读之十raid5数据流之同步数据流程 转载请注明出处:http://blog.csdn.net/liumangxiong
上一节讲到在raid5的同步函数sync_request中炸土豆片是通过handle_stripe来进行的。从最初的创建阵列,到申请各种资源,建立每个阵列的personality,所有的一切都是为了迎接数据流而作的准备。就像我们寒窗苦读就是为了上大学一样。数据流的过程就像大学校园一样丰富多彩并且富有挑战性,但只要跨过了这道坎,内核代码将不再神秘,剩下的问题只是时间而已。首先看handle_stripe究竟把我们的土豆片带往何处:
3550 if ((s.syncing || s.replacing) && s.locked == 0 &&3551 test_bit(STRIPE_INSYNC, &sh->state)) {3552 md_done_sync(conf->mddev, STRIPE_SECTORS, 1);3553 clear_bit(STRIPE_SYNCING, &sh->state);3554 }