Lines Matching refs:ctl_io

458 static void ctl_copy_sense_data(union ctl_ha_msg *src, union ctl_io *dest);
459 static void ctl_copy_sense_data_back(union ctl_io *src, union ctl_ha_msg *dest);
474 static int ctl_do_mode_select(union ctl_io *io);
483 static void ctl_hndl_per_res_out_on_other_sc(union ctl_io *io);
498 static int ctl_get_lba_len(union ctl_io *io, uint64_t *lba, uint64_t *len);
499 static ctl_action ctl_extent_check(union ctl_io *io1, union ctl_io *io2,
501 static ctl_action ctl_seq_check(union ctl_io *io1, union ctl_io *io2);
503 union ctl_io *pending_io, const uint8_t *serialize_row,
504 union ctl_io *ooa_io);
505 static ctl_action ctl_check_ooa(struct ctl_lun *lun, union ctl_io *pending_io,
506 union ctl_io **starting_io);
507 static void ctl_try_unblock_io(struct ctl_lun *lun, union ctl_io *io,
509 static void ctl_try_unblock_others(struct ctl_lun *lun, union ctl_io *io,
514 static void ctl_failover_lun(union ctl_io *io);
518 static int ctl_target_reset(union ctl_io *io);
521 static int ctl_lun_reset(union ctl_io *io);
522 static int ctl_abort_task(union ctl_io *io);
523 static int ctl_abort_task_set(union ctl_io *io);
524 static int ctl_query_task(union ctl_io *io, int task_set);
527 static int ctl_i_t_nexus_reset(union ctl_io *io);
528 static int ctl_query_async_event(union ctl_io *io);
529 static void ctl_run_task(union ctl_io *io);
535 static void ctl_send_datamove_done(union ctl_io *io, int have_lock);
537 static int ctl_datamove_remote_dm_write_cb(union ctl_io *io, bool samethr);
538 static void ctl_datamove_remote_write(union ctl_io *io);
539 static int ctl_datamove_remote_dm_read_cb(union ctl_io *io, bool samethr);
541 static int ctl_datamove_remote_sgl_setup(union ctl_io *io);
542 static int ctl_datamove_remote_xfer(union ctl_io *io, unsigned command,
544 static void ctl_datamove_remote_read(union ctl_io *io);
545 static void ctl_datamove_remote(union ctl_io *io);
546 static void ctl_process_done(union ctl_io *io);
549 static void ctl_enqueue_incoming(union ctl_io *io);
550 static void ctl_enqueue_rtr(union ctl_io *io);
551 static void ctl_enqueue_done(union ctl_io *io);
552 static void ctl_enqueue_isc(union ctl_io *io);
647 ctl_ha_datamove(union ctl_io *io) in ctl_ha_datamove()
765 ctl_ha_done(union ctl_io *io) in ctl_ha_done()
809 ctl_enqueue_isc((union ctl_io *)ctsio); in ctl_isc_handler_finish_xfer()
826 ctl_enqueue_isc((union ctl_io *)ctsio); in ctl_isc_handler_finish_ser_only()
1064 union ctl_io *io; in ctl_isc_ha_link_down()
1490 union ctl_io *io; in ctl_isc_event_handler()
1712 ctl_zero_io((union ctl_io *)taskio); in ctl_isc_event_handler()
1723 ctl_run_task((union ctl_io *)taskio); in ctl_isc_event_handler()
1730 ctl_zero_io((union ctl_io *)presio); in ctl_isc_event_handler()
1735 ctl_enqueue_isc((union ctl_io *)presio); in ctl_isc_event_handler()
1784 ctl_copy_sense_data(union ctl_ha_msg *src, union ctl_io *dest) in ctl_copy_sense_data()
1795 ctl_copy_sense_data_back(union ctl_io *src, union ctl_ha_msg *dest) in ctl_copy_sense_data_back()
1966 softc->io_zone = uma_zcreate("CTL IO", sizeof(union ctl_io), in ctl_init()
2350 union ctl_io *bio; in ctl_serialize_other_sc_cmd()
2410 bio = (union ctl_io *)LIST_NEXT(&ctsio->io_hdr, ooa_links); in ctl_serialize_other_sc_cmd()
2411 switch (ctl_check_ooa(lun, (union ctl_io *)ctsio, &bio)) { in ctl_serialize_other_sc_cmd()
2416 ctl_enqueue_rtr((union ctl_io *)ctsio); in ctl_serialize_other_sc_cmd()
2424 msg_info.hdr.serializing_sc = (union ctl_io *)ctsio; in ctl_serialize_other_sc_cmd()
2446 ctl_copy_sense_data_back((union ctl_io *)ctsio, &msg_info); in ctl_serialize_other_sc_cmd()
2452 ctl_free_io((union ctl_io *)ctsio); in ctl_serialize_other_sc_cmd()
2477 union ctl_io *io = (union ctl_io *)ioh; in ctl_ioctl_fill_ooa()
3968 union ctl_io *
3972 union ctl_io *io; in ctl_alloc_io()
3983 union ctl_io *
3987 union ctl_io *io; in ctl_alloc_io_nowait()
3999 ctl_free_io(union ctl_io *io) in ctl_free_io()
4011 ctl_zero_io(union ctl_io *io) in ctl_zero_io()
5110 ctl_config_move_done(union ctl_io *io, bool samethr) in ctl_config_move_done()
5161 ctl_data_submit_done(union ctl_io *io) in ctl_data_submit_done()
5186 ctl_config_write_done(union ctl_io *io) in ctl_config_write_done()
5220 ctl_config_read_done(union ctl_io *io) in ctl_config_read_done()
5289 ctl_done((union ctl_io *)ctsio); in ctl_scsi_release()
5329 ctl_done((union ctl_io *)ctsio); in ctl_scsi_reserve()
5353 ctl_done((union ctl_io *)ctsio); in ctl_start_stop()
5366 ctl_done((union ctl_io *)ctsio); in ctl_start_stop()
5377 ctl_done((union ctl_io *)ctsio); in ctl_start_stop()
5382 retval = lun->backend->config_write((union ctl_io *)ctsio); in ctl_start_stop()
5400 ctl_done((union ctl_io *)ctsio); in ctl_prevent_allow()
5416 retval = lun->backend->config_write((union ctl_io *)ctsio); in ctl_prevent_allow()
5461 ctl_done((union ctl_io *)ctsio); in ctl_sync_cache()
5475 ctl_done((union ctl_io *)ctsio); in ctl_sync_cache()
5483 retval = lun->backend->config_write((union ctl_io *)ctsio); in ctl_sync_cache()
5516 ctl_datamove((union ctl_io *)ctsio); in ctl_format()
5567 ctl_done((union ctl_io *)ctsio); in ctl_format()
5604 ctl_done((union ctl_io *)ctsio); in ctl_read_buffer()
5616 ctl_done((union ctl_io *)ctsio); in ctl_read_buffer()
5641 ctl_datamove((union ctl_io *)ctsio); in ctl_read_buffer()
5666 ctl_done((union ctl_io *)ctsio); in ctl_write_buffer()
5689 ctl_datamove((union ctl_io *)ctsio); in ctl_write_buffer()
5695 ctl_done((union ctl_io *)ctsio); in ctl_write_buffer()
5700 ctl_write_same_cont(union ctl_io *io) in ctl_write_same_cont()
5718 retval = lun->backend->config_write((union ctl_io *)ctsio); in ctl_write_same_cont()
5762 ctl_done((union ctl_io *)ctsio); in ctl_write_same()
5772 ctl_done((union ctl_io *)ctsio); in ctl_write_same()
5786 ctl_done((union ctl_io *)ctsio); in ctl_write_same()
5802 ctl_done((union ctl_io *)ctsio); in ctl_write_same()
5828 ctl_datamove((union ctl_io *)ctsio); in ctl_write_same()
5837 retval = lun->backend->config_write((union ctl_io *)ctsio); in ctl_write_same()
5873 ctl_datamove((union ctl_io *)ctsio); in ctl_unmap()
5904 ctl_done((union ctl_io *)ctsio); in ctl_unmap()
5927 ctl_try_unblock_others(lun, (union ctl_io *)ctsio, FALSE); in ctl_unmap()
5930 retval = lun->backend->config_write((union ctl_io *)ctsio); in ctl_unmap()
5938 ctl_done((union ctl_io *)ctsio); in ctl_unmap()
6041 ctl_do_mode_select(union ctl_io *io) in ctl_do_mode_select()
6069 ctl_done((union ctl_io *)ctsio); in ctl_do_mode_select()
6074 ctl_done((union ctl_io *)ctsio); in ctl_do_mode_select()
6081 ctl_done((union ctl_io *)ctsio); in ctl_do_mode_select()
6143 ctl_done((union ctl_io *)ctsio); in ctl_do_mode_select()
6168 ctl_done((union ctl_io *)ctsio); in ctl_do_mode_select()
6174 ctl_done((union ctl_io *)ctsio); in ctl_do_mode_select()
6219 ctl_done((union ctl_io *)ctsio); in ctl_do_mode_select()
6253 ctl_done((union ctl_io *)ctsio); in ctl_do_mode_select()
6293 ctl_done((union ctl_io *)ctsio); in ctl_mode_select()
6302 ctl_done((union ctl_io *)ctsio); in ctl_mode_select()
6317 ctl_done((union ctl_io *)ctsio); in ctl_mode_select()
6328 ctl_done((union ctl_io *)ctsio); in ctl_mode_select()
6338 ctl_done((union ctl_io *)ctsio); in ctl_mode_select()
6356 ctl_datamove((union ctl_io *)ctsio); in ctl_mode_select()
6383 ctl_done((union ctl_io *)ctsio); in ctl_mode_select()
6402 return (ctl_do_mode_select((union ctl_io *)ctsio)); in ctl_mode_select()
6463 ctl_done((union ctl_io *)ctsio); in ctl_mode_sense()
6491 ctl_done((union ctl_io *)ctsio); in ctl_mode_sense()
6559 ctl_done((union ctl_io *)ctsio); in ctl_mode_sense()
6736 ctl_datamove((union ctl_io *)ctsio); in ctl_mode_sense()
6955 ctl_done((union ctl_io *)ctsio); in ctl_log_sense()
6989 ctl_datamove((union ctl_io *)ctsio); in ctl_log_sense()
7014 ctl_done((union ctl_io *)ctsio); in ctl_read_capacity()
7043 ctl_datamove((union ctl_io *)ctsio); in ctl_read_capacity()
7071 ctl_done((union ctl_io *)ctsio); in ctl_read_capacity_16()
7093 ctl_datamove((union ctl_io *)ctsio); in ctl_read_capacity_16()
7116 ctl_done((union ctl_io *)ctsio); in ctl_get_lba_status()
7143 retval = lun->backend->config_read((union ctl_io *)ctsio); in ctl_get_lba_status()
7172 ctl_done((union ctl_io *)ctsio); in ctl_read_defect()
7198 ctl_datamove((union ctl_io *)ctsio); in ctl_read_defect()
7241 ctl_done((union ctl_io *)ctsio); in ctl_report_ident_info()
7280 ctl_datamove((union ctl_io *)ctsio); in ctl_report_ident_info()
7317 ctl_done((union ctl_io *)ctsio); in ctl_report_tagret_port_groups()
7449 ctl_datamove((union ctl_io *)ctsio); in ctl_report_tagret_port_groups()
7503 ctl_done((union ctl_io *)ctsio); in ctl_report_supported_opcodes()
7530 ctl_done((union ctl_io *)ctsio); in ctl_report_supported_opcodes()
7616 ctl_datamove((union ctl_io *)ctsio); in ctl_report_supported_opcodes()
7655 ctl_datamove((union ctl_io *)ctsio); in ctl_report_supported_tmf()
7695 ctl_datamove((union ctl_io *)ctsio); in ctl_report_timestamp()
7931 ctl_datamove((union ctl_io *)ctsio); in ctl_persistent_reserve_in()
7961 ctl_done((union ctl_io *)ctsio); in ctl_pro_preempt()
7973 ctl_done((union ctl_io *)ctsio); in ctl_pro_preempt()
8017 ctl_done((union ctl_io *)ctsio); in ctl_pro_preempt()
8043 ctl_done((union ctl_io *)ctsio); in ctl_pro_preempt()
8060 ctl_done((union ctl_io *)ctsio); in ctl_pro_preempt()
8091 ctl_done((union ctl_io *)ctsio); in ctl_pro_preempt()
8103 ctl_done((union ctl_io *)ctsio); in ctl_pro_preempt()
8175 ctl_done((union ctl_io *)ctsio); in ctl_pro_preempt()
8299 ctl_done((union ctl_io *)ctsio); in ctl_persistent_reserve_out()
8310 ctl_done((union ctl_io *)ctsio); in ctl_persistent_reserve_out()
8325 ctl_done((union ctl_io *)ctsio); in ctl_persistent_reserve_out()
8337 ctl_datamove((union ctl_io *)ctsio); in ctl_persistent_reserve_out()
8364 ctl_done((union ctl_io *)ctsio); in ctl_persistent_reserve_out()
8374 ctl_done((union ctl_io *)ctsio); in ctl_persistent_reserve_out()
8384 ctl_done((union ctl_io *)ctsio); in ctl_persistent_reserve_out()
8417 ctl_done((union ctl_io *)ctsio); in ctl_persistent_reserve_out()
8517 ctl_done((union ctl_io *)ctsio); in ctl_persistent_reserve_out()
8572 ctl_done((union ctl_io *)ctsio); in ctl_persistent_reserve_out()
8645 ctl_done((union ctl_io *)ctsio); in ctl_persistent_reserve_out()
8657 ctl_hndl_per_res_out_on_other_sc(union ctl_io *io) in ctl_hndl_per_res_out_on_other_sc()
8876 ctl_done((union ctl_io *)ctsio); in ctl_read_write()
8891 ctl_done((union ctl_io *)ctsio); in ctl_read_write()
8913 ctl_done((union ctl_io *)ctsio); in ctl_read_write()
8929 ctl_done((union ctl_io *)ctsio); in ctl_read_write()
8940 ctl_done((union ctl_io *)ctsio); in ctl_read_write()
8964 retval = lun->backend->data_submit((union ctl_io *)ctsio); in ctl_read_write()
8969 ctl_cnw_cont(union ctl_io *io) in ctl_cnw_cont()
8985 retval = lun->backend->data_submit((union ctl_io *)ctsio); in ctl_cnw_cont()
9020 ctl_done((union ctl_io *)ctsio); in ctl_cnw()
9036 ctl_done((union ctl_io *)ctsio); in ctl_cnw()
9045 ctl_done((union ctl_io *)ctsio); in ctl_cnw()
9071 retval = lun->backend->data_submit((union ctl_io *)ctsio); in ctl_cnw()
9132 ctl_done((union ctl_io *)ctsio); in ctl_verify()
9146 ctl_done((union ctl_io *)ctsio); in ctl_verify()
9155 ctl_done((union ctl_io *)ctsio); in ctl_verify()
9173 retval = lun->backend->data_submit((union ctl_io *)ctsio); in ctl_verify()
9220 ctl_done((union ctl_io *)ctsio); in ctl_report_luns()
9239 ctl_done((union ctl_io *)ctsio); in ctl_report_luns()
9317 ctl_datamove((union ctl_io *)ctsio); in ctl_report_luns()
9443 ctl_datamove((union ctl_io *)ctsio); in ctl_request_sense()
9454 ctl_done((union ctl_io *)ctsio); in ctl_tur()
9520 ctl_datamove((union ctl_io *)ctsio); in ctl_inquiry_evpd_supported()
9568 ctl_datamove((union ctl_io *)ctsio); in ctl_inquiry_evpd_serial()
9635 ctl_datamove((union ctl_io *)ctsio); in ctl_inquiry_evpd_eid()
9674 ctl_datamove((union ctl_io *)ctsio); in ctl_inquiry_evpd_mpp()
9790 ctl_datamove((union ctl_io *)ctsio); in ctl_inquiry_evpd_devid()
9882 ctl_datamove((union ctl_io *)ctsio); in ctl_inquiry_evpd_scsi_ports()
9934 ctl_datamove((union ctl_io *)ctsio); in ctl_inquiry_evpd_sfs()
10010 ctl_datamove((union ctl_io *)ctsio); in ctl_inquiry_evpd_block_limits()
10058 ctl_datamove((union ctl_io *)ctsio); in ctl_inquiry_evpd_bdc()
10107 ctl_datamove((union ctl_io *)ctsio); in ctl_inquiry_evpd_lbp()
10172 ctl_done((union ctl_io *)ctsio); in ctl_inquiry_evpd()
10373 ctl_datamove((union ctl_io *)ctsio); in ctl_inquiry_std()
10397 ctl_done((union ctl_io *)ctsio); in ctl_inquiry()
10607 ctl_datamove((union ctl_io *)ctsio); in ctl_get_config()
10622 ctl_done((union ctl_io *)ctsio); in ctl_get_event_status()
10642 ctl_datamove((union ctl_io *)ctsio); in ctl_get_event_status()
10673 ctl_datamove((union ctl_io *)ctsio); in ctl_mechanism_status()
10749 ctl_datamove((union ctl_io *)ctsio); in ctl_read_toc()
10757 ctl_get_lba_len(union ctl_io *io, uint64_t *lba, uint64_t *len) in ctl_get_lba_len()
10934 ctl_extent_check_unmap(union ctl_io *io, uint64_t lba2, uint64_t len2) in ctl_extent_check_unmap()
10968 ctl_extent_check(union ctl_io *io1, union ctl_io *io2, bool seq) in ctl_extent_check()
10990 ctl_seq_check(union ctl_io *io1, union ctl_io *io2) in ctl_seq_check()
11009 ctl_check_for_blockage(struct ctl_lun *lun, union ctl_io *pending_io, in ctl_check_for_blockage()
11010 const uint8_t *serialize_row, union ctl_io *ooa_io) in ctl_check_for_blockage()
11113 ctl_check_ooa(struct ctl_lun *lun, union ctl_io *pending_io, in ctl_check_ooa()
11114 union ctl_io **starting_io) in ctl_check_ooa()
11116 union ctl_io *ooa_io = *starting_io; in ctl_check_ooa()
11148 ooa_io = (union ctl_io *)LIST_NEXT(&ooa_io->io_hdr, ooa_links)) { in ctl_check_ooa()
11169 ctl_try_unblock_io(struct ctl_lun *lun, union ctl_io *io, bool skip) in ctl_try_unblock_io()
11172 union ctl_io *bio, *obio; in ctl_try_unblock_io()
11184 bio = (union ctl_io *)LIST_NEXT(&bio->io_hdr, ooa_links); in ctl_try_unblock_io()
11271 ctl_try_unblock_others(struct ctl_lun *lun, union ctl_io *bio, bool skip) in ctl_try_unblock_others()
11273 union ctl_io *io, *next_io; in ctl_try_unblock_others()
11277 for (io = (union ctl_io *)TAILQ_FIRST(&bio->io_hdr.blocked_queue); in ctl_try_unblock_others()
11279 next_io = (union ctl_io *)TAILQ_NEXT(&io->io_hdr, blocked_links); in ctl_try_unblock_others()
11415 ctl_failover_io(union ctl_io *io, int have_lock) in ctl_failover_io()
11422 ctl_failover_lun(union ctl_io *rio) in ctl_failover_lun()
11454 (union ctl_io *)io, FALSE); in ctl_failover_lun()
11460 ctl_enqueue_isc((union ctl_io *)io); in ctl_failover_lun()
11469 ctl_set_busy(&((union ctl_io *)io)-> in ctl_failover_lun()
11471 ctl_done((union ctl_io *)io); in ctl_failover_lun()
11484 ctl_try_unblock_others(lun, (union ctl_io *)io, in ctl_failover_lun()
11487 ctl_free_io((union ctl_io *)io); in ctl_failover_lun()
11493 ctl_set_busy(&((union ctl_io *)io)-> in ctl_failover_lun()
11495 ctl_done((union ctl_io *)io); in ctl_failover_lun()
11509 union ctl_io *bio; in ctl_scsiio_precheck()
11564 ctl_enqueue_rtr((union ctl_io *)ctsio); in ctl_scsiio_precheck()
11569 ctl_done((union ctl_io *)ctsio); in ctl_scsiio_precheck()
11580 ctl_done((union ctl_io *)ctsio); in ctl_scsiio_precheck()
11634 ctl_done((union ctl_io *)ctsio); in ctl_scsiio_precheck()
11641 ctl_done((union ctl_io *)ctsio); in ctl_scsiio_precheck()
11665 msg_info.hdr.original_sc = (union ctl_io *)ctsio; in ctl_scsiio_precheck()
11680 ctl_done((union ctl_io *)ctsio); in ctl_scsiio_precheck()
11686 bio = (union ctl_io *)LIST_NEXT(&ctsio->io_hdr, ooa_links); in ctl_scsiio_precheck()
11687 switch (ctl_check_ooa(lun, (union ctl_io *)ctsio, &bio)) { in ctl_scsiio_precheck()
11692 ctl_enqueue_rtr((union ctl_io *)ctsio); in ctl_scsiio_precheck()
11703 ctl_done((union ctl_io *)ctsio); in ctl_scsiio_precheck()
11708 ctl_done((union ctl_io *)ctsio); in ctl_scsiio_precheck()
11751 ctl_done((union ctl_io *)ctsio); in ctl_validate_command()
11767 ctl_done((union ctl_io *)ctsio); in ctl_validate_command()
11813 ctl_done((union ctl_io *)ctsio); in ctl_scsiio()
11828 ctl_target_reset(union ctl_io *io) in ctl_target_reset()
11896 ctl_try_unblock_io(lun, (union ctl_io *)xioh, FALSE); in ctl_do_lun_reset()
11923 ctl_lun_reset(union ctl_io *io) in ctl_lun_reset()
11972 union ctl_io *xio = (union ctl_io *)xioh; in ctl_abort_tasks_lun()
12000 ctl_abort_task_set(union ctl_io *io) in ctl_abort_task_set()
12070 ctl_i_t_nexus_reset(union ctl_io *io) in ctl_i_t_nexus_reset()
12094 ctl_abort_task(union ctl_io *io)
12123 union ctl_io *xio = (union ctl_io *)xioh;
12175 ctl_query_task(union ctl_io *io, int task_set)
12194 union ctl_io *xio = (union ctl_io *)xioh;
12214 ctl_query_async_event(union ctl_io *io)
12242 ctl_run_task(union ctl_io *io)
12301 ctl_handle_isc(union ctl_io *io)
12421 retval = ctl_get_lba_len((union ctl_io *)ctsio, &lba1, &len1);
12439 ctl_inject_error(struct ctl_lun *lun, union ctl_io *io)
12508 union ctl_io *io;
12510 io = (union ctl_io *)arg;
12517 ctl_datamove_done_process(union ctl_io *io)
12548 ctl_datamove_done(union ctl_io *io, bool samethr)
12556 ctl_datamove(union ctl_io *io)
12558 void (*fe_datamove)(union ctl_io *io);
12620 ctl_send_datamove_done(union ctl_io *io, int have_lock)
12665 union ctl_io *io;
12698 ctl_datamove_remote_dm_write_cb(union ctl_io *io, bool samethr)
12708 ctl_datamove_remote_write(union ctl_io *io)
12711 void (*fe_datamove)(union ctl_io *io);
12737 ctl_datamove_remote_dm_read_cb(union ctl_io *io, bool samethr)
12759 union ctl_io *io;
12760 void (*fe_datamove)(union ctl_io *io);
12790 ctl_datamove_remote_sgl_setup(union ctl_io *io)
12824 ctl_datamove_remote_xfer(union ctl_io *io, unsigned command,
12945 ctl_datamove_remote_read(union ctl_io *io)
12983 ctl_datamove_remote(union ctl_io *io)
13020 ctl_process_done(union ctl_io *io)
13025 void (*fe_done)(union ctl_io *io);
13218 ctl_queue_sense(union ctl_io *io)
13270 ctl_queue(union ctl_io *io)
13301 ctl_run(union ctl_io *io)
13339 union ctl_io *io;
13341 io = (union ctl_io *)arg;
13347 ctl_serseq_done(union ctl_io *io)
13362 ctl_done(union ctl_io *io)
13425 union ctl_io *io;
13445 io = (union ctl_io *)STAILQ_FIRST(&thr->isc_queue);
13452 io = (union ctl_io *)STAILQ_FIRST(&thr->done_queue);
13460 io = (union ctl_io *)STAILQ_FIRST(&thr->incoming_queue);
13470 io = (union ctl_io *)STAILQ_FIRST(&thr->rtr_queue);
13595 ctl_enqueue_incoming(union ctl_io *io)
13611 ctl_enqueue_rtr(union ctl_io *io)
13624 ctl_enqueue_done(union ctl_io *io)
13637 ctl_enqueue_isc(union ctl_io *io)