ctl.c (27dcd3d90b41d3c89eac3c2b50b9a6f515e5c89d) | ctl.c (883649681528398dc227778882830fc9da0ce58c) |
---|---|
1/*- 2 * SPDX-License-Identifier: BSD-2-Clause-FreeBSD 3 * 4 * Copyright (c) 2003-2009 Silicon Graphics International Corp. 5 * Copyright (c) 2012 The FreeBSD Foundation 6 * Copyright (c) 2014-2017 Alexander Motin <mav@FreeBSD.org> 7 * Copyright (c) 2017 Jakub Wojciech Klama <jceel@FreeBSD.org> 8 * Copyright (c) 2018 Marcelo Araujo <araujo@FreeBSD.org> --- 1443 unchanged lines hidden (view full) --- 1452 * want to go through full done processing. Thus 1453 * the COPY flag. 1454 * 1455 * XXX KDM add another flag that is more specific. 1456 */ 1457 if (softc->ha_mode != CTL_HA_MODE_XFER) 1458 io->io_hdr.flags |= CTL_FLAG_INT_COPY; 1459 io->io_hdr.nexus = msg->hdr.nexus; | 1/*- 2 * SPDX-License-Identifier: BSD-2-Clause-FreeBSD 3 * 4 * Copyright (c) 2003-2009 Silicon Graphics International Corp. 5 * Copyright (c) 2012 The FreeBSD Foundation 6 * Copyright (c) 2014-2017 Alexander Motin <mav@FreeBSD.org> 7 * Copyright (c) 2017 Jakub Wojciech Klama <jceel@FreeBSD.org> 8 * Copyright (c) 2018 Marcelo Araujo <araujo@FreeBSD.org> --- 1443 unchanged lines hidden (view full) --- 1452 * want to go through full done processing. Thus 1453 * the COPY flag. 1454 * 1455 * XXX KDM add another flag that is more specific. 1456 */ 1457 if (softc->ha_mode != CTL_HA_MODE_XFER) 1458 io->io_hdr.flags |= CTL_FLAG_INT_COPY; 1459 io->io_hdr.nexus = msg->hdr.nexus; |
1460 io->scsiio.priority = msg->scsi.priority; |
|
1460 io->scsiio.tag_num = msg->scsi.tag_num; 1461 io->scsiio.tag_type = msg->scsi.tag_type; 1462#ifdef CTL_TIME_IO 1463 io->io_hdr.start_time = time_uptime; 1464 getbinuptime(&io->io_hdr.start_bt); 1465#endif /* CTL_TIME_IO */ 1466 io->scsiio.cdb_len = msg->scsi.cdb_len; 1467 memcpy(io->scsiio.cdb, msg->scsi.cdb, --- 10130 unchanged lines hidden (view full) --- 11598 mtx_unlock(&lun->lun_lock); 11599 11600 msg_info.hdr.msg_type = CTL_MSG_SERIALIZE; 11601 msg_info.hdr.original_sc = (union ctl_io *)ctsio; 11602 msg_info.hdr.serializing_sc = NULL; 11603 msg_info.hdr.nexus = ctsio->io_hdr.nexus; 11604 msg_info.scsi.tag_num = ctsio->tag_num; 11605 msg_info.scsi.tag_type = ctsio->tag_type; | 1461 io->scsiio.tag_num = msg->scsi.tag_num; 1462 io->scsiio.tag_type = msg->scsi.tag_type; 1463#ifdef CTL_TIME_IO 1464 io->io_hdr.start_time = time_uptime; 1465 getbinuptime(&io->io_hdr.start_bt); 1466#endif /* CTL_TIME_IO */ 1467 io->scsiio.cdb_len = msg->scsi.cdb_len; 1468 memcpy(io->scsiio.cdb, msg->scsi.cdb, --- 10130 unchanged lines hidden (view full) --- 11599 mtx_unlock(&lun->lun_lock); 11600 11601 msg_info.hdr.msg_type = CTL_MSG_SERIALIZE; 11602 msg_info.hdr.original_sc = (union ctl_io *)ctsio; 11603 msg_info.hdr.serializing_sc = NULL; 11604 msg_info.hdr.nexus = ctsio->io_hdr.nexus; 11605 msg_info.scsi.tag_num = ctsio->tag_num; 11606 msg_info.scsi.tag_type = ctsio->tag_type; |
11606 msg_info.scsi.cdb_len = ctsio->cdb_len; | |
11607 memcpy(msg_info.scsi.cdb, ctsio->cdb, CTL_MAX_CDBLEN); | 11607 memcpy(msg_info.scsi.cdb, ctsio->cdb, CTL_MAX_CDBLEN); |
11608 msg_info.scsi.cdb_len = ctsio->cdb_len; 11609 msg_info.scsi.priority = ctsio->priority; |
|
11608 11609 if ((isc_retval = ctl_ha_msg_send(CTL_HA_CHAN_CTL, &msg_info, 11610 sizeof(msg_info.scsi) - sizeof(msg_info.scsi.sense_data), 11611 M_WAITOK)) > CTL_HA_STATUS_SUCCESS) { 11612 ctl_set_busy(ctsio); 11613 ctl_done((union ctl_io *)ctsio); 11614 return (retval); 11615 } --- 859 unchanged lines hidden (view full) --- 12475 sbuf_new(&sb, str, sizeof(str), SBUF_FIXEDLEN); 12476 12477 sbuf_cat(&sb, path_str); 12478 switch (io->io_hdr.io_type) { 12479 case CTL_IO_SCSI: 12480 ctl_scsi_command_string(&io->scsiio, NULL, &sb); 12481 sbuf_printf(&sb, "\n"); 12482 sbuf_cat(&sb, path_str); | 11610 11611 if ((isc_retval = ctl_ha_msg_send(CTL_HA_CHAN_CTL, &msg_info, 11612 sizeof(msg_info.scsi) - sizeof(msg_info.scsi.sense_data), 11613 M_WAITOK)) > CTL_HA_STATUS_SUCCESS) { 11614 ctl_set_busy(ctsio); 11615 ctl_done((union ctl_io *)ctsio); 11616 return (retval); 11617 } --- 859 unchanged lines hidden (view full) --- 12477 sbuf_new(&sb, str, sizeof(str), SBUF_FIXEDLEN); 12478 12479 sbuf_cat(&sb, path_str); 12480 switch (io->io_hdr.io_type) { 12481 case CTL_IO_SCSI: 12482 ctl_scsi_command_string(&io->scsiio, NULL, &sb); 12483 sbuf_printf(&sb, "\n"); 12484 sbuf_cat(&sb, path_str); |
12483 sbuf_printf(&sb, "Tag: 0x%04x, type %d\n", 12484 io->scsiio.tag_num, io->scsiio.tag_type); | 12485 sbuf_printf(&sb, "Tag: 0x%04x/%d, Prio: %d\n", 12486 io->scsiio.tag_num, io->scsiio.tag_type, 12487 io->scsiio.priority); |
12485 break; 12486 case CTL_IO_TASK: | 12488 break; 12489 case CTL_IO_TASK: |
12487 sbuf_printf(&sb, "Task I/O type: %d, Tag: 0x%04x, " 12488 "Tag Type: %d\n", io->taskio.task_action, | 12490 sbuf_printf(&sb, "Task Action: %d Tag: 0x%04x/%d\n", 12491 io->taskio.task_action, |
12489 io->taskio.tag_num, io->taskio.tag_type); 12490 break; 12491 default: 12492 panic("%s: Invalid CTL I/O type %d\n", 12493 __func__, io->io_hdr.io_type); 12494 } 12495 sbuf_cat(&sb, path_str); 12496 sbuf_printf(&sb, "ctl_datamove: %jd seconds\n", --- 476 unchanged lines hidden (view full) --- 12973 sbuf_new(&sb, str, sizeof(str), SBUF_FIXEDLEN); 12974 12975 sbuf_cat(&sb, path_str); 12976 switch (io->io_hdr.io_type) { 12977 case CTL_IO_SCSI: 12978 ctl_scsi_command_string(&io->scsiio, NULL, &sb); 12979 sbuf_printf(&sb, "\n"); 12980 sbuf_cat(&sb, path_str); | 12492 io->taskio.tag_num, io->taskio.tag_type); 12493 break; 12494 default: 12495 panic("%s: Invalid CTL I/O type %d\n", 12496 __func__, io->io_hdr.io_type); 12497 } 12498 sbuf_cat(&sb, path_str); 12499 sbuf_printf(&sb, "ctl_datamove: %jd seconds\n", --- 476 unchanged lines hidden (view full) --- 12976 sbuf_new(&sb, str, sizeof(str), SBUF_FIXEDLEN); 12977 12978 sbuf_cat(&sb, path_str); 12979 switch (io->io_hdr.io_type) { 12980 case CTL_IO_SCSI: 12981 ctl_scsi_command_string(&io->scsiio, NULL, &sb); 12982 sbuf_printf(&sb, "\n"); 12983 sbuf_cat(&sb, path_str); |
12981 sbuf_printf(&sb, "Tag: 0x%04x, type %d\n", 12982 io->scsiio.tag_num, io->scsiio.tag_type); | 12984 sbuf_printf(&sb, "Tag: 0x%04x/%d, Prio: %d\n", 12985 io->scsiio.tag_num, io->scsiio.tag_type, 12986 io->scsiio.priority); |
12983 break; 12984 case CTL_IO_TASK: | 12987 break; 12988 case CTL_IO_TASK: |
12985 sbuf_printf(&sb, "Task I/O type: %d, Tag: 0x%04x, " 12986 "Tag Type: %d\n", io->taskio.task_action, | 12989 sbuf_printf(&sb, "Task Action: %d Tag: 0x%04x/%d\n", 12990 io->taskio.task_action, |
12987 io->taskio.tag_num, io->taskio.tag_type); 12988 break; 12989 default: 12990 panic("%s: Invalid CTL I/O type %d\n", 12991 __func__, io->io_hdr.io_type); 12992 } 12993 sbuf_cat(&sb, path_str); 12994 sbuf_printf(&sb, "ctl_process_done: %jd seconds\n", --- 573 unchanged lines hidden --- | 12991 io->taskio.tag_num, io->taskio.tag_type); 12992 break; 12993 default: 12994 panic("%s: Invalid CTL I/O type %d\n", 12995 __func__, io->io_hdr.io_type); 12996 } 12997 sbuf_cat(&sb, path_str); 12998 sbuf_printf(&sb, "ctl_process_done: %jd seconds\n", --- 573 unchanged lines hidden --- |