From 9d5bb82bd3bc732d439b39ec8f9a92c955ef9497 Mon Sep 17 00:00:00 2001 From: Andrea Mazzoleni Date: Fri, 20 Sep 2013 22:04:22 +0200 Subject: [PATCH] Fixes scrub for RAIDQP parity. --- scrub.c | 17 ++++------------- 1 file changed, 4 insertions(+), 13 deletions(-) diff --git a/scrub.c b/scrub.c index a58b0c2a..ed713b05 100644 --- a/scrub.c +++ b/scrub.c @@ -285,19 +285,10 @@ static int state_scrub_process(struct snapraid_state* state, struct snapraid_par unsigned char* buffer_recov[LEV_MAX]; /* buffers for parity read and not computed */ - if (state->level == 1) { - buffer_recov[0] = buffer[diskmax + 1]; - buffer_recov[1] = 0; - buffer_recov[2] = 0; - } else if (state->level == 2) { - buffer_recov[0] = buffer[diskmax + 2]; - buffer_recov[1] = buffer[diskmax + 3]; - buffer_recov[2] = 0; - } else { - buffer_recov[0] = buffer[diskmax + 3]; - buffer_recov[1] = buffer[diskmax + 4]; - buffer_recov[2] = buffer[diskmax + 5]; - } + for(l=0;llevel;++l) + buffer_recov[l] = buffer[diskmax + state->level + l]; + for(;llevel;++l) {