Selaa lähdekoodia

[PATCH] md: Restore 'remaining' count when retrying an write operation

When retrying a write due to barrier failure, we don't reset 'remaining', so
it goes negative and never hits 0 again.

Signed-off-by: Neil Brown <neilb@suse.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
NeilBrown 19 vuotta sitten
vanhempi
commit
2f889129de
1 muutettua tiedostoa jossa 3 lisäystä ja 0 poistoa
  1. 3 0
      drivers/md/raid1.c

+ 3 - 0
drivers/md/raid1.c

@@ -1401,6 +1401,9 @@ static void raid1d(mddev_t *mddev)
 			int i;
 			clear_bit(R1BIO_BarrierRetry, &r1_bio->state);
 			clear_bit(R1BIO_Barrier, &r1_bio->state);
+			for (i=0; i < conf->raid_disks; i++)
+				if (r1_bio->bios[i])
+					atomic_inc(&r1_bio->remaining);
 			for (i=0; i < conf->raid_disks; i++)
 				if (r1_bio->bios[i]) {
 					struct bio_vec *bvec;