static void dm_bio_destructor(struct bio *bio) { unsigned region; struct io *io; retrieve_io_and_region_from_bio(bio, &io, ®ion); bio_free(bio, io->client->bios); }
static void endio(struct bio *bio, int error) { struct io *io; unsigned region; if (error && bio_data_dir(bio) == READ) zero_fill_bio(bio); retrieve_io_and_region_from_bio(bio, &io, ®ion); bio_put(bio); dec_count(io, region, error); }
static void endio(struct bio *bio, int error) { struct io *io; unsigned region; if (error && bio_data_dir(bio) == READ) zero_fill_bio(bio); /* * The bio destructor in bio_put() may use the io object. */ retrieve_io_and_region_from_bio(bio, &io, ®ion); bio_put(bio); dec_count(io, region, error); }