extern int proc_details;
/* drbd_req */
-extern int __drbd_make_request(struct drbd_conf *, struct bio *, unsigned long);
+extern void __drbd_make_request(struct drbd_conf *, struct bio *, unsigned long);
extern int drbd_make_request(struct request_queue *q, struct bio *bio);
extern int drbd_read_remote(struct drbd_conf *mdev, struct drbd_request *req);
extern int drbd_merge_bvec(struct request_queue *q, struct bvec_merge_data *bvm, struct bio_vec *bvec);
/* We are not just doing generic_make_request(),
* as we want to keep the start_time information. */
- do {
- inc_ap_bio(mdev);
- } while(__drbd_make_request(mdev, bio, start_time));
+ inc_ap_bio(mdev);
+ __drbd_make_request(mdev, bio, start_time);
}
}
bio_endio(bio, -EIO);
}
-int __drbd_make_request(struct drbd_conf *mdev, struct bio *bio, unsigned long start_time)
+void __drbd_make_request(struct drbd_conf *mdev, struct bio *bio, unsigned long start_time)
{
const int rw = bio_rw(bio);
struct bio_and_error m = { NULL, };
* if user cannot handle io errors, that's not our business. */
dev_err(DEV, "could not kmalloc() req\n");
bio_endio(bio, -ENOMEM);
- return 0;
+ return;
}
req->start_time = start_time;
drbd_submit_req_private_bio(req);
/* once we have submitted, we must no longer look at req,
* it may already be destroyed. */
- return 0;
+ return;
} else if (no_remote) {
nodata:
if (__ratelimit(&drbd_ratelimit_state))
if (m.bio)
complete_master_bio(mdev, &m);
- return 0;
+ return;
}
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));
- do {
- inc_ap_bio(mdev);
- } while (__drbd_make_request(mdev, bio, start_time));
+ inc_ap_bio(mdev);
+ __drbd_make_request(mdev, bio, start_time);
return 0;
}