Loading drivers/md/raid5.c +16 −5 Original line number Diff line number Diff line Loading @@ -623,18 +623,29 @@ static void ops_run_biofill(struct stripe_head *sh) async_trigger_callback(&submit); } static void mark_target_uptodate(struct stripe_head *sh, int target) { struct r5dev *tgt; if (target < 0) return; tgt = &sh->dev[target]; set_bit(R5_UPTODATE, &tgt->flags); BUG_ON(!test_bit(R5_Wantcompute, &tgt->flags)); clear_bit(R5_Wantcompute, &tgt->flags); } static void ops_complete_compute5(void *stripe_head_ref) { struct stripe_head *sh = stripe_head_ref; int target = sh->ops.target; struct r5dev *tgt = &sh->dev[target]; pr_debug("%s: stripe %llu\n", __func__, (unsigned long long)sh->sector); set_bit(R5_UPTODATE, &tgt->flags); BUG_ON(!test_bit(R5_Wantcompute, &tgt->flags)); clear_bit(R5_Wantcompute, &tgt->flags); /* mark the computed target as uptodate */ mark_target_uptodate(sh, sh->ops.target); clear_bit(STRIPE_COMPUTE_RUN, &sh->state); if (sh->check_state == check_state_compute_run) sh->check_state = check_state_compute_result; Loading Loading
drivers/md/raid5.c +16 −5 Original line number Diff line number Diff line Loading @@ -623,18 +623,29 @@ static void ops_run_biofill(struct stripe_head *sh) async_trigger_callback(&submit); } static void mark_target_uptodate(struct stripe_head *sh, int target) { struct r5dev *tgt; if (target < 0) return; tgt = &sh->dev[target]; set_bit(R5_UPTODATE, &tgt->flags); BUG_ON(!test_bit(R5_Wantcompute, &tgt->flags)); clear_bit(R5_Wantcompute, &tgt->flags); } static void ops_complete_compute5(void *stripe_head_ref) { struct stripe_head *sh = stripe_head_ref; int target = sh->ops.target; struct r5dev *tgt = &sh->dev[target]; pr_debug("%s: stripe %llu\n", __func__, (unsigned long long)sh->sector); set_bit(R5_UPTODATE, &tgt->flags); BUG_ON(!test_bit(R5_Wantcompute, &tgt->flags)); clear_bit(R5_Wantcompute, &tgt->flags); /* mark the computed target as uptodate */ mark_target_uptodate(sh, sh->ops.target); clear_bit(STRIPE_COMPUTE_RUN, &sh->state); if (sh->check_state == check_state_compute_run) sh->check_state = check_state_compute_result; Loading