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
This commit is contained in:
Matt Jacob 2006-03-25 18:18:26 +00:00
parent 818812244b
commit 441201ce65
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=157129

View File

@ -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);