diff options
author | Matt Jacob <mjacob@FreeBSD.org> | 2006-03-25 18:18:26 +0000 |
---|---|---|
committer | Matt Jacob <mjacob@FreeBSD.org> | 2006-03-25 18:18:26 +0000 |
commit | 441201ce65bf4becf093801b23ab4a4604ee43d8 (patch) | |
tree | 7c1866f09e990e3577dd4d2e2f45bfac06465e41 /share | |
parent | 818812244b6ae3202c89a2a2bb595be47ad65d9a (diff) | |
download | src-441201ce65bf4becf093801b23ab4a4604ee43d8.tar.gz src-441201ce65bf4becf093801b23ab4a4604ee43d8.zip |
Move the check for non-ATIO_CMD ahead of the cache chech so that
completion for unsupported commands doesn't abort.
Reviewed by: nate
MFC after: 2 weeks
Notes
Notes:
svn path=/head/; revision=157129
Diffstat (limited to 'share')
-rw-r--r-- | share/examples/scsi_target/scsi_cmds.c | 19 |
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 33d1ceca6a21..dd0b0694f1ad 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); |