diff options
-rw-r--r-- | raid6check.c | 5 | ||||
-rw-r--r-- | restripe.c | 11 |
2 files changed, 6 insertions, 10 deletions
diff --git a/raid6check.c b/raid6check.c index f0194405..b2e17323 100644 --- a/raid6check.c +++ b/raid6check.c @@ -271,11 +271,6 @@ int manual_repair(int chunk_size, int syndrome_disks, failed_data, (uint8_t**)blocks, 1); } else { printf("Repairing D and D\n"); - if (failed_slot1 > failed_slot2) { - int t = failed_slot1; - failed_slot1 = failed_slot2; - failed_slot2 = t; - } raid6_2data_recov(syndrome_disks+2, chunk_size, failed_slot1, failed_slot2, (uint8_t**)blocks, 1); @@ -354,6 +354,12 @@ void raid6_2data_recov(int disks, size_t bytes, int faila, int failb, const uint8_t *pbmul; /* P multiplier table for B data */ const uint8_t *qmul; /* Q multiplier table (for both) */ + if (faila > failb) { + int t = faila; + faila = failb; + failb = t; + } + if (neg_offset) { p = ptrs[-1]; q = ptrs[-2]; @@ -651,11 +657,6 @@ int save_stripes(int *source, unsigned long long *offsets, raid6_datap_recov(syndrome_disks+2, chunk_size, fdisk[0], bufs, 0); else { - if (fdisk[0] > fdisk[1]) { - int t = fdisk[0]; - fdisk[0] = fdisk[1]; - fdisk[1] = t; - } /* Two data blocks failed, P,Q OK */ raid6_2data_recov(syndrome_disks+2, chunk_size, fdisk[0], fdisk[1], bufs, 0); |