Lines Matching refs:ctl_io

80 #include <cam/ctl/ctl_io.h>
459 static void ctl_copy_sense_data(union ctl_ha_msg *src, union ctl_io *dest);
460 static void ctl_copy_sense_data_back(union ctl_io *src, union ctl_ha_msg *dest);
475 static int ctl_do_mode_select(union ctl_io *io);
484 static void ctl_hndl_per_res_out_on_other_sc(union ctl_io *io);
499 static int ctl_get_lba_len(union ctl_io *io, uint64_t *lba, uint64_t *len);
500 static ctl_action ctl_extent_check(union ctl_io *io1, union ctl_io *io2,
502 static ctl_action ctl_seq_check(union ctl_io *io1, union ctl_io *io2);
504 union ctl_io *pending_io, const uint8_t *serialize_row,
505 union ctl_io *ooa_io);
506 static ctl_action ctl_check_ooa(struct ctl_lun *lun, union ctl_io *pending_io,
507 union ctl_io **starting_io);
508 static void ctl_try_unblock_io(struct ctl_lun *lun, union ctl_io *io,
510 static void ctl_try_unblock_others(struct ctl_lun *lun, union ctl_io *io,
515 static void ctl_failover_lun(union ctl_io *io);
519 static int ctl_target_reset(union ctl_io *io);
522 static int ctl_lun_reset(union ctl_io *io);
523 static int ctl_abort_task(union ctl_io *io);
524 static int ctl_abort_task_set(union ctl_io *io);
525 static int ctl_query_task(union ctl_io *io, int task_set);
528 static int ctl_i_t_nexus_reset(union ctl_io *io);
529 static int ctl_query_async_event(union ctl_io *io);
530 static void ctl_run_task(union ctl_io *io);
536 static void ctl_send_datamove_done(union ctl_io *io, int have_lock);
538 static int ctl_datamove_remote_dm_write_cb(union ctl_io *io, bool samethr);
539 static void ctl_datamove_remote_write(union ctl_io *io);
540 static int ctl_datamove_remote_dm_read_cb(union ctl_io *io, bool samethr);
542 static int ctl_datamove_remote_sgl_setup(union ctl_io *io);
543 static int ctl_datamove_remote_xfer(union ctl_io *io, unsigned command,
545 static void ctl_datamove_remote_read(union ctl_io *io);
546 static void ctl_datamove_remote(union ctl_io *io);
547 static void ctl_process_done(union ctl_io *io);
550 static void ctl_enqueue_incoming(union ctl_io *io);
551 static void ctl_enqueue_rtr(union ctl_io *io);
552 static void ctl_enqueue_done(union ctl_io *io);
553 static void ctl_enqueue_isc(union ctl_io *io);
649 ctl_ha_datamove(union ctl_io *io)
767 ctl_ha_done(union ctl_io *io)
810 ctl_enqueue_isc((union ctl_io *)ctsio);
827 ctl_enqueue_isc((union ctl_io *)ctsio);
1064 union ctl_io *io;
1417 union ctl_io *io;
1638 ctl_zero_io((union ctl_io *)taskio);
1649 ctl_run_task((union ctl_io *)taskio);
1656 ctl_zero_io((union ctl_io *)presio);
1661 ctl_enqueue_isc((union ctl_io *)presio);
1710 ctl_copy_sense_data(union ctl_ha_msg *src, union ctl_io *dest)
1721 ctl_copy_sense_data_back(union ctl_io *src, union ctl_ha_msg *dest)
1892 softc->io_zone = uma_zcreate("CTL IO", sizeof(union ctl_io),
2276 union ctl_io *bio;
2336 bio = (union ctl_io *)LIST_NEXT(&ctsio->io_hdr, ooa_links);
2337 switch (ctl_check_ooa(lun, (union ctl_io *)ctsio, &bio)) {
2342 ctl_enqueue_rtr((union ctl_io *)ctsio);
2350 msg_info.hdr.serializing_sc = (union ctl_io *)ctsio;
2372 ctl_copy_sense_data_back((union ctl_io *)ctsio, &msg_info);
2378 ctl_free_io((union ctl_io *)ctsio);
2403 union ctl_io *io = (union ctl_io *)ioh;
3886 union ctl_io *
3890 union ctl_io *io;
3901 union ctl_io *
3905 union ctl_io *io;
3917 ctl_free_io(union ctl_io *io)
3929 ctl_zero_io(union ctl_io *io)
5031 ctl_config_move_done(union ctl_io *io, bool samethr)
5082 ctl_data_submit_done(union ctl_io *io)
5107 ctl_config_write_done(union ctl_io *io)
5141 ctl_config_read_done(union ctl_io *io)
5210 ctl_done((union ctl_io *)ctsio);
5250 ctl_done((union ctl_io *)ctsio);
5275 ctl_done((union ctl_io *)ctsio);
5288 ctl_done((union ctl_io *)ctsio);
5299 ctl_done((union ctl_io *)ctsio);
5304 retval = lun->backend->config_write((union ctl_io *)ctsio);
5322 ctl_done((union ctl_io *)ctsio);
5338 retval = lun->backend->config_write((union ctl_io *)ctsio);
5383 ctl_done((union ctl_io *)ctsio);
5397 ctl_done((union ctl_io *)ctsio);
5405 retval = lun->backend->config_write((union ctl_io *)ctsio);
5438 ctl_datamove((union ctl_io *)ctsio);
5489 ctl_done((union ctl_io *)ctsio);
5526 ctl_done((union ctl_io *)ctsio);
5538 ctl_done((union ctl_io *)ctsio);
5563 ctl_datamove((union ctl_io *)ctsio);
5588 ctl_done((union ctl_io *)ctsio);
5608 ctl_datamove((union ctl_io *)ctsio);
5614 ctl_done((union ctl_io *)ctsio);
5619 ctl_write_same_cont(union ctl_io *io)
5637 retval = lun->backend->config_write((union ctl_io *)ctsio);
5681 ctl_done((union ctl_io *)ctsio);
5691 ctl_done((union ctl_io *)ctsio);
5705 ctl_done((union ctl_io *)ctsio);
5721 ctl_done((union ctl_io *)ctsio);
5747 ctl_datamove((union ctl_io *)ctsio);
5756 retval = lun->backend->config_write((union ctl_io *)ctsio);
5792 ctl_datamove((union ctl_io *)ctsio);
5823 ctl_done((union ctl_io *)ctsio);
5846 ctl_try_unblock_others(lun, (union ctl_io *)ctsio, FALSE);
5849 retval = lun->backend->config_write((union ctl_io *)ctsio);
5857 ctl_done((union ctl_io *)ctsio);
5959 ctl_do_mode_select(union ctl_io *io)
5987 ctl_done((union ctl_io *)ctsio);
5993 ctl_done((union ctl_io *)ctsio);
6001 ctl_done((union ctl_io *)ctsio);
6064 ctl_done((union ctl_io *)ctsio);
6089 ctl_done((union ctl_io *)ctsio);
6095 ctl_done((union ctl_io *)ctsio);
6140 ctl_done((union ctl_io *)ctsio);
6174 ctl_done((union ctl_io *)ctsio);
6214 ctl_done((union ctl_io *)ctsio);
6223 ctl_done((union ctl_io *)ctsio);
6238 ctl_done((union ctl_io *)ctsio);
6249 ctl_done((union ctl_io *)ctsio);
6259 ctl_done((union ctl_io *)ctsio);
6277 ctl_datamove((union ctl_io *)ctsio);
6304 ctl_done((union ctl_io *)ctsio);
6323 return (ctl_do_mode_select((union ctl_io *)ctsio));
6384 ctl_done((union ctl_io *)ctsio);
6412 ctl_done((union ctl_io *)ctsio);
6480 ctl_done((union ctl_io *)ctsio);
6657 ctl_datamove((union ctl_io *)ctsio);
6876 ctl_done((union ctl_io *)ctsio);
6910 ctl_datamove((union ctl_io *)ctsio);
6935 ctl_done((union ctl_io *)ctsio);
6964 ctl_datamove((union ctl_io *)ctsio);
6992 ctl_done((union ctl_io *)ctsio);
7014 ctl_datamove((union ctl_io *)ctsio);
7037 ctl_done((union ctl_io *)ctsio);
7064 retval = lun->backend->config_read((union ctl_io *)ctsio);
7093 ctl_done((union ctl_io *)ctsio);
7119 ctl_datamove((union ctl_io *)ctsio);
7162 ctl_done((union ctl_io *)ctsio);
7201 ctl_datamove((union ctl_io *)ctsio);
7238 ctl_done((union ctl_io *)ctsio);
7370 ctl_datamove((union ctl_io *)ctsio);
7424 ctl_done((union ctl_io *)ctsio);
7438 ctl_done((union ctl_io *)ctsio);
7452 ctl_done((union ctl_io *)ctsio);
7538 ctl_datamove((union ctl_io *)ctsio);
7577 ctl_datamove((union ctl_io *)ctsio);
7617 ctl_datamove((union ctl_io *)ctsio);
7853 ctl_datamove((union ctl_io *)ctsio);
7883 ctl_done((union ctl_io *)ctsio);
7895 ctl_done((union ctl_io *)ctsio);
7939 ctl_done((union ctl_io *)ctsio);
7965 ctl_done((union ctl_io *)ctsio);
7982 ctl_done((union ctl_io *)ctsio);
8013 ctl_done((union ctl_io *)ctsio);
8025 ctl_done((union ctl_io *)ctsio);
8097 ctl_done((union ctl_io *)ctsio);
8222 ctl_done((union ctl_io *)ctsio);
8233 ctl_done((union ctl_io *)ctsio);
8248 ctl_datamove((union ctl_io *)ctsio);
8275 ctl_done((union ctl_io *)ctsio);
8285 ctl_done((union ctl_io *)ctsio);
8295 ctl_done((union ctl_io *)ctsio);
8329 ctl_done((union ctl_io *)ctsio);
8430 ctl_done((union ctl_io *)ctsio);
8485 ctl_done((union ctl_io *)ctsio);
8558 ctl_done((union ctl_io *)ctsio);
8570 ctl_hndl_per_res_out_on_other_sc(union ctl_io *io)
8789 ctl_done((union ctl_io *)ctsio);
8804 ctl_done((union ctl_io *)ctsio);
8826 ctl_done((union ctl_io *)ctsio);
8842 ctl_done((union ctl_io *)ctsio);
8853 ctl_done((union ctl_io *)ctsio);
8877 retval = lun->backend->data_submit((union ctl_io *)ctsio);
8882 ctl_cnw_cont(union ctl_io *io)
8898 retval = lun->backend->data_submit((union ctl_io *)ctsio);
8933 ctl_done((union ctl_io *)ctsio);
8949 ctl_done((union ctl_io *)ctsio);
8958 ctl_done((union ctl_io *)ctsio);
8984 retval = lun->backend->data_submit((union ctl_io *)ctsio);
9045 ctl_done((union ctl_io *)ctsio);
9059 ctl_done((union ctl_io *)ctsio);
9068 ctl_done((union ctl_io *)ctsio);
9086 retval = lun->backend->data_submit((union ctl_io *)ctsio);
9133 ctl_done((union ctl_io *)ctsio);
9152 ctl_done((union ctl_io *)ctsio);
9230 ctl_datamove((union ctl_io *)ctsio);
9362 ctl_datamove((union ctl_io *)ctsio);
9373 ctl_done((union ctl_io *)ctsio);
9439 ctl_datamove((union ctl_io *)ctsio);
9487 ctl_datamove((union ctl_io *)ctsio);
9555 ctl_datamove((union ctl_io *)ctsio);
9594 ctl_datamove((union ctl_io *)ctsio);
9710 ctl_datamove((union ctl_io *)ctsio);
9802 ctl_datamove((union ctl_io *)ctsio);
9854 ctl_datamove((union ctl_io *)ctsio);
9930 ctl_datamove((union ctl_io *)ctsio);
9978 ctl_datamove((union ctl_io *)ctsio);
10027 ctl_datamove((union ctl_io *)ctsio);
10092 ctl_done((union ctl_io *)ctsio);
10293 ctl_datamove((union ctl_io *)ctsio);
10317 ctl_done((union ctl_io *)ctsio);
10527 ctl_datamove((union ctl_io *)ctsio);
10542 ctl_done((union ctl_io *)ctsio);
10562 ctl_datamove((union ctl_io *)ctsio);
10593 ctl_datamove((union ctl_io *)ctsio);
10669 ctl_datamove((union ctl_io *)ctsio);
10677 ctl_get_lba_len(union ctl_io *io, uint64_t *lba, uint64_t *len)
10854 ctl_extent_check_unmap(union ctl_io *io, uint64_t lba2, uint64_t len2)
10888 ctl_extent_check(union ctl_io *io1, union ctl_io *io2, bool seq)
10910 ctl_seq_check(union ctl_io *io1, union ctl_io *io2)
10929 ctl_check_for_blockage(struct ctl_lun *lun, union ctl_io *pending_io,
10930 const uint8_t *serialize_row, union ctl_io *ooa_io)
11033 ctl_check_ooa(struct ctl_lun *lun, union ctl_io *pending_io,
11034 union ctl_io **starting_io)
11036 union ctl_io *ooa_io = *starting_io;
11068 ooa_io = (union ctl_io *)LIST_NEXT(&ooa_io->io_hdr, ooa_links)) {
11089 ctl_try_unblock_io(struct ctl_lun *lun, union ctl_io *io, bool skip)
11092 union ctl_io *bio, *obio;
11104 bio = (union ctl_io *)LIST_NEXT(&bio->io_hdr, ooa_links);
11191 ctl_try_unblock_others(struct ctl_lun *lun, union ctl_io *bio, bool skip)
11193 union ctl_io *io, *next_io;
11197 for (io = (union ctl_io *)TAILQ_FIRST(&bio->io_hdr.blocked_queue);
11199 next_io = (union ctl_io *)TAILQ_NEXT(&io->io_hdr, blocked_links);
11335 ctl_failover_io(union ctl_io *io, int have_lock)
11342 ctl_failover_lun(union ctl_io *rio)
11374 (union ctl_io *)io, FALSE);
11380 ctl_enqueue_isc((union ctl_io *)io);
11389 ctl_set_busy(&((union ctl_io *)io)->
11391 ctl_done((union ctl_io *)io);
11404 ctl_try_unblock_others(lun, (union ctl_io *)io,
11407 ctl_free_io((union ctl_io *)io);
11413 ctl_set_busy(&((union ctl_io *)io)->
11415 ctl_done((union ctl_io *)io);
11429 union ctl_io *bio;
11484 ctl_enqueue_rtr((union ctl_io *)ctsio);
11489 ctl_done((union ctl_io *)ctsio);
11500 ctl_done((union ctl_io *)ctsio);
11554 ctl_done((union ctl_io *)ctsio);
11562 ctl_done((union ctl_io *)ctsio);
11586 msg_info.hdr.original_sc = (union ctl_io *)ctsio;
11599 ctl_done((union ctl_io *)ctsio);
11605 bio = (union ctl_io *)LIST_NEXT(&ctsio->io_hdr, ooa_links);
11606 switch (ctl_check_ooa(lun, (union ctl_io *)ctsio, &bio)) {
11611 ctl_enqueue_rtr((union ctl_io *)ctsio);
11622 ctl_done((union ctl_io *)ctsio);
11627 ctl_done((union ctl_io *)ctsio);
11670 ctl_done((union ctl_io *)ctsio);
11686 ctl_done((union ctl_io *)ctsio);
11732 ctl_done((union ctl_io *)ctsio);
11747 ctl_target_reset(union ctl_io *io)
11815 ctl_try_unblock_io(lun, (union ctl_io *)xioh, FALSE);
11842 ctl_lun_reset(union ctl_io *io)
11891 union ctl_io *xio = (union ctl_io *)xioh;
11919 ctl_abort_task_set(union ctl_io *io)
11989 ctl_i_t_nexus_reset(union ctl_io *io)
12013 ctl_abort_task(union ctl_io *io)
12042 union ctl_io *xio = (union ctl_io *)xioh;
12094 ctl_query_task(union ctl_io *io, int task_set)
12113 union ctl_io *xio = (union ctl_io *)xioh;
12133 ctl_query_async_event(union ctl_io *io)
12161 ctl_run_task(union ctl_io *io)
12220 ctl_handle_isc(union ctl_io *io)
12341 retval = ctl_get_lba_len((union ctl_io *)ctsio, &lba1, &len1);
12359 ctl_inject_error(struct ctl_lun *lun, union ctl_io *io)
12428 union ctl_io *io;
12430 io = (union ctl_io *)arg;
12437 ctl_datamove_done_process(union ctl_io *io)
12468 ctl_datamove_done(union ctl_io *io, bool samethr)
12476 ctl_datamove(union ctl_io *io)
12478 void (*fe_datamove)(union ctl_io *io);
12541 ctl_send_datamove_done(union ctl_io *io, int have_lock)
12586 union ctl_io *io;
12619 ctl_datamove_remote_dm_write_cb(union ctl_io *io, bool samethr)
12629 ctl_datamove_remote_write(union ctl_io *io)
12632 void (*fe_datamove)(union ctl_io *io);
12658 ctl_datamove_remote_dm_read_cb(union ctl_io *io, bool samethr)
12680 union ctl_io *io;
12681 void (*fe_datamove)(union ctl_io *io);
12711 ctl_datamove_remote_sgl_setup(union ctl_io *io)
12745 ctl_datamove_remote_xfer(union ctl_io *io, unsigned command,
12867 ctl_datamove_remote_read(union ctl_io *io)
12905 ctl_datamove_remote(union ctl_io *io)
12942 ctl_process_done(union ctl_io *io)
12947 void (*fe_done)(union ctl_io *io);
13158 ctl_queue_sense(union ctl_io *io)
13210 ctl_queue(union ctl_io *io)
13241 ctl_run(union ctl_io *io)
13279 union ctl_io *io;
13281 io = (union ctl_io *)arg;
13287 ctl_serseq_done(union ctl_io *io)
13305 ctl_done(union ctl_io *io)
13369 union ctl_io *io;
13389 io = (union ctl_io *)STAILQ_FIRST(&thr->isc_queue);
13396 io = (union ctl_io *)STAILQ_FIRST(&thr->done_queue);
13404 io = (union ctl_io *)STAILQ_FIRST(&thr->incoming_queue);
13414 io = (union ctl_io *)STAILQ_FIRST(&thr->rtr_queue);
13539 ctl_enqueue_incoming(union ctl_io *io)
13555 ctl_enqueue_rtr(union ctl_io *io)
13568 ctl_enqueue_done(union ctl_io *io)
13581 ctl_enqueue_isc(union ctl_io *io)