|
@@ -1788,6 +1788,7 @@ static void sync_request_write(struct mddev *mddev, struct r10bio *r10_bio)
|
|
struct r10conf *conf = mddev->private;
|
|
struct r10conf *conf = mddev->private;
|
|
int i, first;
|
|
int i, first;
|
|
struct bio *tbio, *fbio;
|
|
struct bio *tbio, *fbio;
|
|
|
|
+ int vcnt;
|
|
|
|
|
|
atomic_set(&r10_bio->remaining, 1);
|
|
atomic_set(&r10_bio->remaining, 1);
|
|
|
|
|
|
@@ -1802,10 +1803,10 @@ static void sync_request_write(struct mddev *mddev, struct r10bio *r10_bio)
|
|
first = i;
|
|
first = i;
|
|
fbio = r10_bio->devs[i].bio;
|
|
fbio = r10_bio->devs[i].bio;
|
|
|
|
|
|
|
|
+ vcnt = (r10_bio->sectors + (PAGE_SIZE >> 9) - 1) >> (PAGE_SHIFT - 9);
|
|
/* now find blocks with errors */
|
|
/* now find blocks with errors */
|
|
for (i=0 ; i < conf->copies ; i++) {
|
|
for (i=0 ; i < conf->copies ; i++) {
|
|
int j, d;
|
|
int j, d;
|
|
- int vcnt = r10_bio->sectors >> (PAGE_SHIFT-9);
|
|
|
|
|
|
|
|
tbio = r10_bio->devs[i].bio;
|
|
tbio = r10_bio->devs[i].bio;
|
|
|
|
|
|
@@ -1871,7 +1872,6 @@ static void sync_request_write(struct mddev *mddev, struct r10bio *r10_bio)
|
|
*/
|
|
*/
|
|
for (i = 0; i < conf->copies; i++) {
|
|
for (i = 0; i < conf->copies; i++) {
|
|
int j, d;
|
|
int j, d;
|
|
- int vcnt = r10_bio->sectors >> (PAGE_SHIFT-9);
|
|
|
|
|
|
|
|
tbio = r10_bio->devs[i].repl_bio;
|
|
tbio = r10_bio->devs[i].repl_bio;
|
|
if (!tbio || !tbio->bi_end_io)
|
|
if (!tbio || !tbio->bi_end_io)
|