summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--share/examples/scsi_target/scsi_cmds.c19
1 files changed, 10 insertions, 9 deletions
diff --git a/share/examples/scsi_target/scsi_cmds.c b/share/examples/scsi_target/scsi_cmds.c
index 33d1cec..dd0b069 100644
--- a/share/examples/scsi_target/scsi_cmds.c
+++ b/share/examples/scsi_target/scsi_cmds.c
@@ -155,6 +155,16 @@ tcmd_handle(struct ccb_accept_tio *atio, struct ccb_scsiio *ctio, io_ops event)
}
last_cmd = h;
}
+
+ /* call completion and exit */
+ if (event != ATIO_WORK) {
+ if (last_cmd->done != NULL)
+ last_cmd->done(atio, ctio, event);
+ else
+ free_ccb((union ccb *)ctio);
+ return (1);
+ }
+
if (last_cmd->cmd == ILLEGAL_CDB) {
if (event != ATIO_WORK) {
warnx("no done func for %#x???", a_descr->cdb[0]);
@@ -167,15 +177,6 @@ tcmd_handle(struct ccb_accept_tio *atio, struct ccb_scsiio *ctio, io_ops event)
return (0);
}
- /* call completion and exit */
- if (event != ATIO_WORK) {
- if (last_cmd->done != NULL)
- last_cmd->done(atio, ctio, event);
- else
- free_ccb((union ccb *)ctio);
- return (1);
- }
-
istate = tcmd_get_istate(ctio->init_id);
if (istate == NULL) {
tcmd_illegal_req(atio, ctio);
OpenPOWER on IntegriCloud