raid5: fix clearing of biofill operations

From: Dan Williams <dan.j.williams@intel.com>

ops_complete_biofill() runs outside of spin_lock(&sh->lock) and clears
'ack' before it clears 'pending'.  If get_stripe_work() runs in between the
clearing of 'ack' and 'pending' it will recount the recently completed
operation and cause sh->ops.count to be less than zero.

Signed-off-by: Dan Williams <dan.j.williams@intel.com>
---

 drivers/md/raid5.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/drivers/md/raid5.c b/drivers/md/raid5.c
index f96dea9..822f4d5 100644
--- a/drivers/md/raid5.c
+++ b/drivers/md/raid5.c
@@ -551,8 +551,8 @@ static void ops_complete_biofill(void *stripe_head_ref)
 			}
 		}
 	}
-	clear_bit(STRIPE_OP_BIOFILL, &sh->ops.ack);
 	clear_bit(STRIPE_OP_BIOFILL, &sh->ops.pending);
+	clear_bit(STRIPE_OP_BIOFILL, &sh->ops.ack);
 
 	return_io(return_bi);
 
