|
@@ -929,8 +929,8 @@ allocate_barrier:
|
|
|
}
|
|
|
|
|
|
if (drbd_suspended(mdev)) {
|
|
|
- /* If we got suspended, use the retry mechanism of
|
|
|
- generic_make_request() to restart processing of this
|
|
|
+ /* If we got suspended, use the retry mechanism in
|
|
|
+ drbd_make_request() to restart processing of this
|
|
|
bio. In the next call to drbd_make_request
|
|
|
we sleep in inc_ap_bio() */
|
|
|
ret = 1;
|
|
@@ -1110,8 +1110,11 @@ int drbd_make_request(struct request_queue *q, struct bio *bio)
|
|
|
D_ASSERT(bio->bi_size > 0);
|
|
|
D_ASSERT(IS_ALIGNED(bio->bi_size, 512));
|
|
|
|
|
|
- inc_ap_bio(mdev);
|
|
|
- return __drbd_make_request(mdev, bio, start_time);
|
|
|
+ do {
|
|
|
+ inc_ap_bio(mdev);
|
|
|
+ } while (__drbd_make_request(mdev, bio, start_time));
|
|
|
+
|
|
|
+ return 0;
|
|
|
}
|
|
|
|
|
|
/* This is called by bio_add_page().
|