diff --git a/drivers/md/raid10.c b/drivers/md/raid10.c
index 62ebb1bc72be24cc32ecc775c5bd71603d44e5c6..7239079203ec1aa6652ddda6b990b4adf5cf0064 100644
--- a/drivers/md/raid10.c
+++ b/drivers/md/raid10.c
@@ -538,7 +538,8 @@ static int read_balance(conf_t *conf, r10bio_t *r10_bio)
 	}
 
 
-	current_distance = abs(this_sector - conf->mirrors[disk].head_position);
+	current_distance = abs(r10_bio->devs[slot].addr -
+			       conf->mirrors[disk].head_position);
 
 	/* Find the disk whose head is closest */