On May 21, 2007, at 5:08 PM, Jonathan Brassow wrote:
+/* Asynchronous read. */
+static void read_async_bio(struct mirror *m, struct bio *bio)
+{
+ struct io_region io;
+ struct dm_io_request io_req = {
+ .bi_rw = READ,
+ .mem.type = DM_IO_BVEC,
+ .mem.ptr.bvec = bio->bi_io_vec + bio->bi_idx,
+ .notify.fn = read_callback,
+ .notify.context = bio,
+ .client = m->ms->io_client,
+ };
+
+ map_region(&io, m, bio);
+ bio_set_m(bio, m);
+ (void) dm_io(&io_req, m->ms->nr_mirrors, &io, NULL);
}
The call to dm_io is wrong here, it should be: (void) dm_io(&io_req, 1, &io, NULL); Will send substitute patch shortly, brassow