dm_io
.client = b->c->dm_io,
r = dm_io(&io_req, 1, ®ion, NULL, ioprio);
.client = c->dm_io,
return dm_io(&io_req, 1, &io_reg, NULL, IOPRIO_DEFAULT);
.client = c->dm_io,
return dm_io(&io_req, 1, &io_reg, NULL, IOPRIO_DEFAULT);
return c->dm_io;
c->dm_io = dm_io_client_create();
if (IS_ERR(c->dm_io)) {
r = PTR_ERR(c->dm_io);
dm_io_client_destroy(c->dm_io);
dm_io_client_destroy(c->dm_io);
struct dm_io_client *dm_io;
struct dm_io *requeue_list;
struct dm_io *io;
(offsetof(struct dm_target_io, clone) + offsetof(struct dm_io, tio))
struct dm_io;
struct dm_io *next;
static inline bool dm_io_flagged(struct dm_io *io, unsigned int bit)
static inline void dm_io_set_flag(struct dm_io *io, unsigned int bit)
void dm_io_rewind(struct dm_io *io, struct bio_set *bs);
r = dm_io(&io_req, 1, &io_loc, NULL, IOPRIO_DEFAULT);
r = dm_io(&io_req, 1, &io_loc, NULL, IOPRIO_DEFAULT);
r = dm_io(&fr.io_req, 1, &fr.io_reg, NULL, IOPRIO_DEFAULT);
r = dm_io(&io_req, 1, &io_loc, NULL, IOPRIO_DEFAULT);
r = dm_io(&io_req, 1, &io_loc, NULL, IOPRIO_DEFAULT);
r = dm_io(&io_req, 1, &io_loc, NULL, IOPRIO_DEFAULT);
void dm_io_rewind(struct dm_io *io, struct bio_set *bs)
EXPORT_SYMBOL(dm_io);
r = dm_io(&io_req, 1, &job->source, NULL, IOPRIO_DEFAULT);
r = dm_io(&io_req, job->num_dests, job->dests, NULL, IOPRIO_DEFAULT);
return dm_io(&lc->io_req, 1, &lc->header_location, NULL, IOPRIO_DEFAULT);
return dm_io(&lc->io_req, 1, &null_location, NULL, IOPRIO_DEFAULT);
dm_io(&io_req, ms->nr_mirrors, io, &error_bits, IOPRIO_DEFAULT);
BUG_ON(dm_io(&io_req, 1, &io, NULL, IOPRIO_DEFAULT));
BUG_ON(dm_io(&io_req, ms->nr_mirrors, io, NULL, IOPRIO_DEFAULT));
req->result = dm_io(req->io_req, 1, req->where, NULL, IOPRIO_DEFAULT);
return dm_io(&io_req, 1, &where, NULL, IOPRIO_DEFAULT);
__alignof__(struct dm_io)) + DM_IO_BIO_OFFSET;
r = dm_io(&io_req, 1, &io_loc, NULL, IOPRIO_DEFAULT);
struct dm_io_client *dm_io;
if (wc->dm_io)
dm_io_client_destroy(wc->dm_io);
wc->dm_io = dm_io_client_create();
if (IS_ERR(wc->dm_io)) {
r = PTR_ERR(wc->dm_io);
wc->dm_io = NULL;
req.client = wc->dm_io;
(void) dm_io(&req, 1, ®ion, NULL, IOPRIO_DEFAULT);
req.client = wc->dm_io;
r = dm_io(&req, 1, ®ion, NULL, IOPRIO_DEFAULT);
req.client = wc->dm_io;
r = dm_io(&req, 1, ®ion, NULL, IOPRIO_DEFAULT);
req.client = wc->dm_io;
return dm_io(&req, 1, ®ion, NULL, IOPRIO_DEFAULT);
void dm_zone_endio(struct dm_io *io, struct bio *clone)
struct dm_io *next = io->next;
static inline void dm_io_complete(struct dm_io *io)
static inline void __dm_io_dec_pending(struct dm_io *io)
static void dm_io_set_error(struct dm_io *io, blk_status_t error)
static void dm_io_dec_pending(struct dm_io *io, blk_status_t error)
struct dm_io *io = (struct dm_io *)((char *)data + data_size);
struct dm_io *io = tio->io;
struct dm_io *io = tio->io;
struct dm_io *io = tio->io;
struct dm_io *io = tio->io;
struct dm_io *io = ci->io;
static inline struct dm_io **dm_poll_list_head(struct bio *bio)
return (struct dm_io **)&bio->bi_private;
static void dm_queue_poll_io(struct bio *bio, struct dm_io *io)
struct dm_io **head = dm_poll_list_head(bio);
static void init_clone_info(struct clone_info *ci, struct dm_io *io,
struct dm_io *io;
static bool dm_poll_dm_io(struct dm_io *io, struct io_comp_batch *iob,
struct dm_io **head = dm_poll_list_head(bio);
struct dm_io *list = *head;
struct dm_io *tmp = NULL;
struct dm_io *curr, *next;
static inline unsigned int dm_io_sectors(struct dm_io *io, struct bio *bio)
static void dm_io_acct(struct dm_io *io, bool end)
static void __dm_start_io_acct(struct dm_io *io)
static void dm_start_io_acct(struct dm_io *io, struct bio *clone)
static void dm_end_io_acct(struct dm_io *io)
static struct dm_io *alloc_io(struct mapped_device *md, struct bio *bio, gfp_t gfp_mask)
struct dm_io *io;
io = container_of(tio, struct dm_io, tio);
static void free_io(struct dm_io *io)
struct dm_io *io;
static void dm_requeue_add_io(struct dm_io *io, bool first_stage)
struct dm_io *next = md->requeue_list;
static bool dm_handle_requeue(struct dm_io *io, bool first_stage)
static void __dm_io_complete(struct dm_io *io, bool first_stage)
struct dm_io *io;
void dm_zone_endio(struct dm_io *io, struct bio *clone);
struct dm_io;
int dm_io(struct dm_io_request *io_req, unsigned int num_regions,