aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/md/raid5.c
diff options
context:
space:
mode:
authorDan Williams <dan.j.williams@intel.com>2009-09-16 15:24:54 -0400
committerDan Williams <dan.j.williams@intel.com>2009-09-16 15:24:54 -0400
commit6c910a78e495b4c1778a8b136b37fe3c05712730 (patch)
tree46bb72265a9ea354e1bb6b043318e93dbf07df5e /drivers/md/raid5.c
parent2d6e4ecc87d20299bcb249dd62efbd73496744c3 (diff)
md/raid6: cleanup ops_run_compute6_2
Neil says: "It is correct as it stands, but the fact that every branch in the 'if' part ends with a 'return' isn't immediately obvious, so it is clearer if we are explicit about the if / then / else structure." Signed-off-by: Dan Williams <dan.j.williams@intel.com>
Diffstat (limited to 'drivers/md/raid5.c')
-rw-r--r--drivers/md/raid5.c27
1 files changed, 15 insertions, 12 deletions
diff --git a/drivers/md/raid5.c b/drivers/md/raid5.c
index 0a5f03d93aef..1898eda60722 100644
--- a/drivers/md/raid5.c
+++ b/drivers/md/raid5.c
@@ -810,7 +810,7 @@ ops_run_compute6_2(struct stripe_head *sh, struct raid5_percpu *percpu)
810 BUG_ON(!test_bit(R5_Wantcompute, &tgt->flags)); 810 BUG_ON(!test_bit(R5_Wantcompute, &tgt->flags));
811 BUG_ON(!test_bit(R5_Wantcompute, &tgt2->flags)); 811 BUG_ON(!test_bit(R5_Wantcompute, &tgt2->flags));
812 812
813 /* we need to open-code set_syndrome_sources to handle to the 813 /* we need to open-code set_syndrome_sources to handle the
814 * slot number conversion for 'faila' and 'failb' 814 * slot number conversion for 'faila' and 'failb'
815 */ 815 */
816 for (i = 0; i < disks ; i++) 816 for (i = 0; i < disks ; i++)
@@ -879,18 +879,21 @@ ops_run_compute6_2(struct stripe_head *sh, struct raid5_percpu *percpu)
879 return async_gen_syndrome(blocks, 0, count+2, 879 return async_gen_syndrome(blocks, 0, count+2,
880 STRIPE_SIZE, &submit); 880 STRIPE_SIZE, &submit);
881 } 881 }
882 }
883
884 init_async_submit(&submit, ASYNC_TX_FENCE, NULL, ops_complete_compute,
885 sh, to_addr_conv(sh, percpu));
886 if (failb == syndrome_disks) {
887 /* We're missing D+P. */
888 return async_raid6_datap_recov(syndrome_disks+2, STRIPE_SIZE,
889 faila, blocks, &submit);
890 } else { 882 } else {
891 /* We're missing D+D. */ 883 init_async_submit(&submit, ASYNC_TX_FENCE, NULL,
892 return async_raid6_2data_recov(syndrome_disks+2, STRIPE_SIZE, 884 ops_complete_compute, sh,
893 faila, failb, blocks, &submit); 885 to_addr_conv(sh, percpu));
886 if (failb == syndrome_disks) {
887 /* We're missing D+P. */
888 return async_raid6_datap_recov(syndrome_disks+2,
889 STRIPE_SIZE, faila,
890 blocks, &submit);
891 } else {
892 /* We're missing D+D. */
893 return async_raid6_2data_recov(syndrome_disks+2,
894 STRIPE_SIZE, faila, failb,
895 blocks, &submit);
896 }
894 } 897 }
895} 898}
896 899