]> git.karo-electronics.de Git - mv-sheeva.git/blobdiff - drivers/md/raid10.c
[PATCH] md: improve read speed to raid10 arrays using 'far copies'
[mv-sheeva.git] / drivers / md / raid10.c
index 867f06ae33d944e8ef7178d28fc3fa8905d963b3..713dc9c2c73093a67348e473f2bfc47f888d6e3c 100644 (file)
@@ -552,7 +552,11 @@ static int read_balance(conf_t *conf, r10bio_t *r10_bio)
                    !test_bit(In_sync, &rdev->flags))
                        continue;
 
-               if (!atomic_read(&rdev->nr_pending)) {
+               /* This optimisation is debatable, and completely destroys
+                * sequential read speed for 'far copies' arrays.  So only
+                * keep it for 'near' arrays, and review those later.
+                */
+               if (conf->near_copies > 1 && !atomic_read(&rdev->nr_pending)) {
                        disk = ndisk;
                        slot = nslot;
                        break;