Lines Matching refs:ctl_io
460 static void ctl_copy_sense_data(union ctl_ha_msg *src, union ctl_io *dest);
461 static void ctl_copy_sense_data_back(union ctl_io *src, union ctl_ha_msg *dest);
476 static int ctl_do_mode_select(union ctl_io *io);
485 static void ctl_hndl_per_res_out_on_other_sc(union ctl_io *io);
500 static int ctl_get_lba_len(union ctl_io *io, uint64_t *lba, uint64_t *len);
501 static ctl_action ctl_extent_check(union ctl_io *io1, union ctl_io *io2,
503 static ctl_action ctl_seq_check(union ctl_io *io1, union ctl_io *io2);
505 union ctl_io *pending_io, const uint8_t *serialize_row,
506 union ctl_io *ooa_io);
507 static ctl_action ctl_check_ooa(struct ctl_lun *lun, union ctl_io *pending_io,
508 union ctl_io **starting_io);
509 static void ctl_try_unblock_io(struct ctl_lun *lun, union ctl_io *io,
511 static void ctl_try_unblock_others(struct ctl_lun *lun, union ctl_io *io,
516 static void ctl_failover_lun(union ctl_io *io);
520 static int ctl_target_reset(union ctl_io *io);
523 static int ctl_lun_reset(union ctl_io *io);
524 static int ctl_abort_task(union ctl_io *io);
525 static int ctl_abort_task_set(union ctl_io *io);
526 static int ctl_query_task(union ctl_io *io, int task_set);
529 static int ctl_i_t_nexus_reset(union ctl_io *io);
530 static int ctl_query_async_event(union ctl_io *io);
531 static void ctl_run_task(union ctl_io *io);
537 static void ctl_send_datamove_done(union ctl_io *io, int have_lock);
539 static int ctl_datamove_remote_dm_write_cb(union ctl_io *io, bool samethr);
540 static void ctl_datamove_remote_write(union ctl_io *io);
541 static int ctl_datamove_remote_dm_read_cb(union ctl_io *io, bool samethr);
543 static int ctl_datamove_remote_sgl_setup(union ctl_io *io);
544 static int ctl_datamove_remote_xfer(union ctl_io *io, unsigned command,
546 static void ctl_datamove_remote_read(union ctl_io *io);
547 static void ctl_datamove_remote(union ctl_io *io);
548 static void ctl_process_done(union ctl_io *io);
551 static void ctl_enqueue_incoming(union ctl_io *io);
552 static void ctl_enqueue_rtr(union ctl_io *io);
553 static void ctl_enqueue_done(union ctl_io *io);
554 static void ctl_enqueue_isc(union ctl_io *io);
649 ctl_ha_datamove(union ctl_io *io) in ctl_ha_datamove()
767 ctl_ha_done(union ctl_io *io) in ctl_ha_done()
810 ctl_enqueue_isc((union ctl_io *)ctsio); in ctl_isc_handler_finish_xfer()
827 ctl_enqueue_isc((union ctl_io *)ctsio); in ctl_isc_handler_finish_ser_only()
1065 union ctl_io *io; in ctl_isc_ha_link_down()
1418 union ctl_io *io; in ctl_isc_event_handler()
1639 ctl_zero_io((union ctl_io *)taskio); in ctl_isc_event_handler()
1650 ctl_run_task((union ctl_io *)taskio); in ctl_isc_event_handler()
1657 ctl_zero_io((union ctl_io *)presio); in ctl_isc_event_handler()
1662 ctl_enqueue_isc((union ctl_io *)presio); in ctl_isc_event_handler()
1711 ctl_copy_sense_data(union ctl_ha_msg *src, union ctl_io *dest) in ctl_copy_sense_data()
1722 ctl_copy_sense_data_back(union ctl_io *src, union ctl_ha_msg *dest) in ctl_copy_sense_data_back()
1893 softc->io_zone = uma_zcreate("CTL IO", sizeof(union ctl_io), in ctl_init()
2277 union ctl_io *bio; in ctl_serialize_other_sc_cmd()
2337 bio = (union ctl_io *)LIST_NEXT(&ctsio->io_hdr, ooa_links); in ctl_serialize_other_sc_cmd()
2338 switch (ctl_check_ooa(lun, (union ctl_io *)ctsio, &bio)) { in ctl_serialize_other_sc_cmd()
2343 ctl_enqueue_rtr((union ctl_io *)ctsio); in ctl_serialize_other_sc_cmd()
2351 msg_info.hdr.serializing_sc = (union ctl_io *)ctsio; in ctl_serialize_other_sc_cmd()
2373 ctl_copy_sense_data_back((union ctl_io *)ctsio, &msg_info); in ctl_serialize_other_sc_cmd()
2379 ctl_free_io((union ctl_io *)ctsio); in ctl_serialize_other_sc_cmd()
2404 union ctl_io *io = (union ctl_io *)ioh; in ctl_ioctl_fill_ooa()
3886 union ctl_io *
3890 union ctl_io *io; in ctl_alloc_io()
3901 union ctl_io *
3905 union ctl_io *io; in ctl_alloc_io_nowait()
3917 ctl_free_io(union ctl_io *io) in ctl_free_io()
3929 ctl_zero_io(union ctl_io *io) in ctl_zero_io()
5028 ctl_config_move_done(union ctl_io *io, bool samethr) in ctl_config_move_done()
5079 ctl_data_submit_done(union ctl_io *io) in ctl_data_submit_done()
5104 ctl_config_write_done(union ctl_io *io) in ctl_config_write_done()
5138 ctl_config_read_done(union ctl_io *io) in ctl_config_read_done()
5207 ctl_done((union ctl_io *)ctsio); in ctl_scsi_release()
5247 ctl_done((union ctl_io *)ctsio); in ctl_scsi_reserve()
5271 ctl_done((union ctl_io *)ctsio); in ctl_start_stop()
5284 ctl_done((union ctl_io *)ctsio); in ctl_start_stop()
5295 ctl_done((union ctl_io *)ctsio); in ctl_start_stop()
5300 retval = lun->backend->config_write((union ctl_io *)ctsio); in ctl_start_stop()
5318 ctl_done((union ctl_io *)ctsio); in ctl_prevent_allow()
5334 retval = lun->backend->config_write((union ctl_io *)ctsio); in ctl_prevent_allow()
5379 ctl_done((union ctl_io *)ctsio); in ctl_sync_cache()
5393 ctl_done((union ctl_io *)ctsio); in ctl_sync_cache()
5401 retval = lun->backend->config_write((union ctl_io *)ctsio); in ctl_sync_cache()
5434 ctl_datamove((union ctl_io *)ctsio); in ctl_format()
5485 ctl_done((union ctl_io *)ctsio); in ctl_format()
5522 ctl_done((union ctl_io *)ctsio); in ctl_read_buffer()
5534 ctl_done((union ctl_io *)ctsio); in ctl_read_buffer()
5559 ctl_datamove((union ctl_io *)ctsio); in ctl_read_buffer()
5584 ctl_done((union ctl_io *)ctsio); in ctl_write_buffer()
5604 ctl_datamove((union ctl_io *)ctsio); in ctl_write_buffer()
5610 ctl_done((union ctl_io *)ctsio); in ctl_write_buffer()
5615 ctl_write_same_cont(union ctl_io *io) in ctl_write_same_cont()
5633 retval = lun->backend->config_write((union ctl_io *)ctsio); in ctl_write_same_cont()
5677 ctl_done((union ctl_io *)ctsio); in ctl_write_same()
5687 ctl_done((union ctl_io *)ctsio); in ctl_write_same()
5701 ctl_done((union ctl_io *)ctsio); in ctl_write_same()
5717 ctl_done((union ctl_io *)ctsio); in ctl_write_same()
5743 ctl_datamove((union ctl_io *)ctsio); in ctl_write_same()
5752 retval = lun->backend->config_write((union ctl_io *)ctsio); in ctl_write_same()
5788 ctl_datamove((union ctl_io *)ctsio); in ctl_unmap()
5819 ctl_done((union ctl_io *)ctsio); in ctl_unmap()
5842 ctl_try_unblock_others(lun, (union ctl_io *)ctsio, FALSE); in ctl_unmap()
5845 retval = lun->backend->config_write((union ctl_io *)ctsio); in ctl_unmap()
5853 ctl_done((union ctl_io *)ctsio); in ctl_unmap()
5956 ctl_do_mode_select(union ctl_io *io) in ctl_do_mode_select()
5984 ctl_done((union ctl_io *)ctsio); in ctl_do_mode_select()
5989 ctl_done((union ctl_io *)ctsio); in ctl_do_mode_select()
5996 ctl_done((union ctl_io *)ctsio); in ctl_do_mode_select()
6058 ctl_done((union ctl_io *)ctsio); in ctl_do_mode_select()
6083 ctl_done((union ctl_io *)ctsio); in ctl_do_mode_select()
6089 ctl_done((union ctl_io *)ctsio); in ctl_do_mode_select()
6134 ctl_done((union ctl_io *)ctsio); in ctl_do_mode_select()
6168 ctl_done((union ctl_io *)ctsio); in ctl_do_mode_select()
6208 ctl_done((union ctl_io *)ctsio); in ctl_mode_select()
6217 ctl_done((union ctl_io *)ctsio); in ctl_mode_select()
6232 ctl_done((union ctl_io *)ctsio); in ctl_mode_select()
6243 ctl_done((union ctl_io *)ctsio); in ctl_mode_select()
6253 ctl_done((union ctl_io *)ctsio); in ctl_mode_select()
6271 ctl_datamove((union ctl_io *)ctsio); in ctl_mode_select()
6298 ctl_done((union ctl_io *)ctsio); in ctl_mode_select()
6317 return (ctl_do_mode_select((union ctl_io *)ctsio)); in ctl_mode_select()
6378 ctl_done((union ctl_io *)ctsio); in ctl_mode_sense()
6406 ctl_done((union ctl_io *)ctsio); in ctl_mode_sense()
6474 ctl_done((union ctl_io *)ctsio); in ctl_mode_sense()
6651 ctl_datamove((union ctl_io *)ctsio); in ctl_mode_sense()
6870 ctl_done((union ctl_io *)ctsio); in ctl_log_sense()
6904 ctl_datamove((union ctl_io *)ctsio); in ctl_log_sense()
6929 ctl_done((union ctl_io *)ctsio); in ctl_read_capacity()
6958 ctl_datamove((union ctl_io *)ctsio); in ctl_read_capacity()
6986 ctl_done((union ctl_io *)ctsio); in ctl_read_capacity_16()
7008 ctl_datamove((union ctl_io *)ctsio); in ctl_read_capacity_16()
7031 ctl_done((union ctl_io *)ctsio); in ctl_get_lba_status()
7058 retval = lun->backend->config_read((union ctl_io *)ctsio); in ctl_get_lba_status()
7087 ctl_done((union ctl_io *)ctsio); in ctl_read_defect()
7113 ctl_datamove((union ctl_io *)ctsio); in ctl_read_defect()
7156 ctl_done((union ctl_io *)ctsio); in ctl_report_ident_info()
7195 ctl_datamove((union ctl_io *)ctsio); in ctl_report_ident_info()
7232 ctl_done((union ctl_io *)ctsio); in ctl_report_tagret_port_groups()
7364 ctl_datamove((union ctl_io *)ctsio); in ctl_report_tagret_port_groups()
7418 ctl_done((union ctl_io *)ctsio); in ctl_report_supported_opcodes()
7432 ctl_done((union ctl_io *)ctsio); in ctl_report_supported_opcodes()
7446 ctl_done((union ctl_io *)ctsio); in ctl_report_supported_opcodes()
7532 ctl_datamove((union ctl_io *)ctsio); in ctl_report_supported_opcodes()
7571 ctl_datamove((union ctl_io *)ctsio); in ctl_report_supported_tmf()
7611 ctl_datamove((union ctl_io *)ctsio); in ctl_report_timestamp()
7847 ctl_datamove((union ctl_io *)ctsio); in ctl_persistent_reserve_in()
7877 ctl_done((union ctl_io *)ctsio); in ctl_pro_preempt()
7889 ctl_done((union ctl_io *)ctsio); in ctl_pro_preempt()
7933 ctl_done((union ctl_io *)ctsio); in ctl_pro_preempt()
7959 ctl_done((union ctl_io *)ctsio); in ctl_pro_preempt()
7976 ctl_done((union ctl_io *)ctsio); in ctl_pro_preempt()
8007 ctl_done((union ctl_io *)ctsio); in ctl_pro_preempt()
8019 ctl_done((union ctl_io *)ctsio); in ctl_pro_preempt()
8091 ctl_done((union ctl_io *)ctsio); in ctl_pro_preempt()
8215 ctl_done((union ctl_io *)ctsio); in ctl_persistent_reserve_out()
8226 ctl_done((union ctl_io *)ctsio); in ctl_persistent_reserve_out()
8241 ctl_datamove((union ctl_io *)ctsio); in ctl_persistent_reserve_out()
8268 ctl_done((union ctl_io *)ctsio); in ctl_persistent_reserve_out()
8278 ctl_done((union ctl_io *)ctsio); in ctl_persistent_reserve_out()
8288 ctl_done((union ctl_io *)ctsio); in ctl_persistent_reserve_out()
8321 ctl_done((union ctl_io *)ctsio); in ctl_persistent_reserve_out()
8421 ctl_done((union ctl_io *)ctsio); in ctl_persistent_reserve_out()
8476 ctl_done((union ctl_io *)ctsio); in ctl_persistent_reserve_out()
8549 ctl_done((union ctl_io *)ctsio); in ctl_persistent_reserve_out()
8561 ctl_hndl_per_res_out_on_other_sc(union ctl_io *io) in ctl_hndl_per_res_out_on_other_sc()
8780 ctl_done((union ctl_io *)ctsio); in ctl_read_write()
8795 ctl_done((union ctl_io *)ctsio); in ctl_read_write()
8817 ctl_done((union ctl_io *)ctsio); in ctl_read_write()
8833 ctl_done((union ctl_io *)ctsio); in ctl_read_write()
8844 ctl_done((union ctl_io *)ctsio); in ctl_read_write()
8868 retval = lun->backend->data_submit((union ctl_io *)ctsio); in ctl_read_write()
8873 ctl_cnw_cont(union ctl_io *io) in ctl_cnw_cont()
8889 retval = lun->backend->data_submit((union ctl_io *)ctsio); in ctl_cnw_cont()
8924 ctl_done((union ctl_io *)ctsio); in ctl_cnw()
8940 ctl_done((union ctl_io *)ctsio); in ctl_cnw()
8949 ctl_done((union ctl_io *)ctsio); in ctl_cnw()
8975 retval = lun->backend->data_submit((union ctl_io *)ctsio); in ctl_cnw()
9036 ctl_done((union ctl_io *)ctsio); in ctl_verify()
9050 ctl_done((union ctl_io *)ctsio); in ctl_verify()
9059 ctl_done((union ctl_io *)ctsio); in ctl_verify()
9077 retval = lun->backend->data_submit((union ctl_io *)ctsio); in ctl_verify()
9124 ctl_done((union ctl_io *)ctsio); in ctl_report_luns()
9143 ctl_done((union ctl_io *)ctsio); in ctl_report_luns()
9221 ctl_datamove((union ctl_io *)ctsio); in ctl_report_luns()
9353 ctl_datamove((union ctl_io *)ctsio); in ctl_request_sense()
9364 ctl_done((union ctl_io *)ctsio); in ctl_tur()
9430 ctl_datamove((union ctl_io *)ctsio); in ctl_inquiry_evpd_supported()
9478 ctl_datamove((union ctl_io *)ctsio); in ctl_inquiry_evpd_serial()
9545 ctl_datamove((union ctl_io *)ctsio); in ctl_inquiry_evpd_eid()
9584 ctl_datamove((union ctl_io *)ctsio); in ctl_inquiry_evpd_mpp()
9700 ctl_datamove((union ctl_io *)ctsio); in ctl_inquiry_evpd_devid()
9792 ctl_datamove((union ctl_io *)ctsio); in ctl_inquiry_evpd_scsi_ports()
9844 ctl_datamove((union ctl_io *)ctsio); in ctl_inquiry_evpd_sfs()
9920 ctl_datamove((union ctl_io *)ctsio); in ctl_inquiry_evpd_block_limits()
9968 ctl_datamove((union ctl_io *)ctsio); in ctl_inquiry_evpd_bdc()
10017 ctl_datamove((union ctl_io *)ctsio); in ctl_inquiry_evpd_lbp()
10082 ctl_done((union ctl_io *)ctsio); in ctl_inquiry_evpd()
10283 ctl_datamove((union ctl_io *)ctsio); in ctl_inquiry_std()
10307 ctl_done((union ctl_io *)ctsio); in ctl_inquiry()
10517 ctl_datamove((union ctl_io *)ctsio); in ctl_get_config()
10532 ctl_done((union ctl_io *)ctsio); in ctl_get_event_status()
10552 ctl_datamove((union ctl_io *)ctsio); in ctl_get_event_status()
10583 ctl_datamove((union ctl_io *)ctsio); in ctl_mechanism_status()
10659 ctl_datamove((union ctl_io *)ctsio); in ctl_read_toc()
10667 ctl_get_lba_len(union ctl_io *io, uint64_t *lba, uint64_t *len) in ctl_get_lba_len()
10844 ctl_extent_check_unmap(union ctl_io *io, uint64_t lba2, uint64_t len2) in ctl_extent_check_unmap()
10878 ctl_extent_check(union ctl_io *io1, union ctl_io *io2, bool seq) in ctl_extent_check()
10900 ctl_seq_check(union ctl_io *io1, union ctl_io *io2) in ctl_seq_check()
10919 ctl_check_for_blockage(struct ctl_lun *lun, union ctl_io *pending_io, in ctl_check_for_blockage()
10920 const uint8_t *serialize_row, union ctl_io *ooa_io) in ctl_check_for_blockage()
11023 ctl_check_ooa(struct ctl_lun *lun, union ctl_io *pending_io, in ctl_check_ooa()
11024 union ctl_io **starting_io) in ctl_check_ooa()
11026 union ctl_io *ooa_io = *starting_io; in ctl_check_ooa()
11058 ooa_io = (union ctl_io *)LIST_NEXT(&ooa_io->io_hdr, ooa_links)) { in ctl_check_ooa()
11079 ctl_try_unblock_io(struct ctl_lun *lun, union ctl_io *io, bool skip) in ctl_try_unblock_io()
11082 union ctl_io *bio, *obio; in ctl_try_unblock_io()
11094 bio = (union ctl_io *)LIST_NEXT(&bio->io_hdr, ooa_links); in ctl_try_unblock_io()
11181 ctl_try_unblock_others(struct ctl_lun *lun, union ctl_io *bio, bool skip) in ctl_try_unblock_others()
11183 union ctl_io *io, *next_io; in ctl_try_unblock_others()
11187 for (io = (union ctl_io *)TAILQ_FIRST(&bio->io_hdr.blocked_queue); in ctl_try_unblock_others()
11189 next_io = (union ctl_io *)TAILQ_NEXT(&io->io_hdr, blocked_links); in ctl_try_unblock_others()
11325 ctl_failover_io(union ctl_io *io, int have_lock) in ctl_failover_io()
11332 ctl_failover_lun(union ctl_io *rio) in ctl_failover_lun()
11364 (union ctl_io *)io, FALSE); in ctl_failover_lun()
11370 ctl_enqueue_isc((union ctl_io *)io); in ctl_failover_lun()
11379 ctl_set_busy(&((union ctl_io *)io)-> in ctl_failover_lun()
11381 ctl_done((union ctl_io *)io); in ctl_failover_lun()
11394 ctl_try_unblock_others(lun, (union ctl_io *)io, in ctl_failover_lun()
11397 ctl_free_io((union ctl_io *)io); in ctl_failover_lun()
11403 ctl_set_busy(&((union ctl_io *)io)-> in ctl_failover_lun()
11405 ctl_done((union ctl_io *)io); in ctl_failover_lun()
11419 union ctl_io *bio; in ctl_scsiio_precheck()
11474 ctl_enqueue_rtr((union ctl_io *)ctsio); in ctl_scsiio_precheck()
11479 ctl_done((union ctl_io *)ctsio); in ctl_scsiio_precheck()
11490 ctl_done((union ctl_io *)ctsio); in ctl_scsiio_precheck()
11544 ctl_done((union ctl_io *)ctsio); in ctl_scsiio_precheck()
11551 ctl_done((union ctl_io *)ctsio); in ctl_scsiio_precheck()
11575 msg_info.hdr.original_sc = (union ctl_io *)ctsio; in ctl_scsiio_precheck()
11588 ctl_done((union ctl_io *)ctsio); in ctl_scsiio_precheck()
11594 bio = (union ctl_io *)LIST_NEXT(&ctsio->io_hdr, ooa_links); in ctl_scsiio_precheck()
11595 switch (ctl_check_ooa(lun, (union ctl_io *)ctsio, &bio)) { in ctl_scsiio_precheck()
11600 ctl_enqueue_rtr((union ctl_io *)ctsio); in ctl_scsiio_precheck()
11611 ctl_done((union ctl_io *)ctsio); in ctl_scsiio_precheck()
11616 ctl_done((union ctl_io *)ctsio); in ctl_scsiio_precheck()
11659 ctl_done((union ctl_io *)ctsio); in ctl_validate_command()
11675 ctl_done((union ctl_io *)ctsio); in ctl_validate_command()
11721 ctl_done((union ctl_io *)ctsio); in ctl_scsiio()
11736 ctl_target_reset(union ctl_io *io) in ctl_target_reset()
11804 ctl_try_unblock_io(lun, (union ctl_io *)xioh, FALSE); in ctl_do_lun_reset()
11831 ctl_lun_reset(union ctl_io *io) in ctl_lun_reset()
11880 union ctl_io *xio = (union ctl_io *)xioh; in ctl_abort_tasks_lun()
11908 ctl_abort_task_set(union ctl_io *io) in ctl_abort_task_set()
11978 ctl_i_t_nexus_reset(union ctl_io *io) in ctl_i_t_nexus_reset()
12002 ctl_abort_task(union ctl_io *io)
12031 union ctl_io *xio = (union ctl_io *)xioh;
12083 ctl_query_task(union ctl_io *io, int task_set)
12102 union ctl_io *xio = (union ctl_io *)xioh;
12122 ctl_query_async_event(union ctl_io *io)
12150 ctl_run_task(union ctl_io *io)
12209 ctl_handle_isc(union ctl_io *io)
12329 retval = ctl_get_lba_len((union ctl_io *)ctsio, &lba1, &len1);
12347 ctl_inject_error(struct ctl_lun *lun, union ctl_io *io)
12416 union ctl_io *io;
12418 io = (union ctl_io *)arg;
12425 ctl_datamove_done_process(union ctl_io *io)
12456 ctl_datamove_done(union ctl_io *io, bool samethr)
12464 ctl_datamove(union ctl_io *io)
12466 void (*fe_datamove)(union ctl_io *io);
12528 ctl_send_datamove_done(union ctl_io *io, int have_lock)
12573 union ctl_io *io;
12606 ctl_datamove_remote_dm_write_cb(union ctl_io *io, bool samethr)
12616 ctl_datamove_remote_write(union ctl_io *io)
12619 void (*fe_datamove)(union ctl_io *io);
12645 ctl_datamove_remote_dm_read_cb(union ctl_io *io, bool samethr)
12667 union ctl_io *io;
12668 void (*fe_datamove)(union ctl_io *io);
12698 ctl_datamove_remote_sgl_setup(union ctl_io *io)
12732 ctl_datamove_remote_xfer(union ctl_io *io, unsigned command,
12853 ctl_datamove_remote_read(union ctl_io *io)
12891 ctl_datamove_remote(union ctl_io *io)
12928 ctl_process_done(union ctl_io *io)
12933 void (*fe_done)(union ctl_io *io);
13144 ctl_queue_sense(union ctl_io *io)
13196 ctl_queue(union ctl_io *io)
13227 ctl_run(union ctl_io *io)
13265 union ctl_io *io;
13267 io = (union ctl_io *)arg;
13273 ctl_serseq_done(union ctl_io *io)
13288 ctl_done(union ctl_io *io)
13351 union ctl_io *io;
13371 io = (union ctl_io *)STAILQ_FIRST(&thr->isc_queue);
13378 io = (union ctl_io *)STAILQ_FIRST(&thr->done_queue);
13386 io = (union ctl_io *)STAILQ_FIRST(&thr->incoming_queue);
13396 io = (union ctl_io *)STAILQ_FIRST(&thr->rtr_queue);
13521 ctl_enqueue_incoming(union ctl_io *io)
13537 ctl_enqueue_rtr(union ctl_io *io)
13550 ctl_enqueue_done(union ctl_io *io)
13563 ctl_enqueue_isc(union ctl_io *io)