Whoops- forgot to commit this other pearl from Justin- only set or

clear CAM_TAG_ACTION_VALID if this is an XPT_SCSI_IO CCB (otherwise,
the peripheral driver knows best...)..
Obtained from:gibbs@freebsd.org
This commit is contained in:
Matt Jacob 2000-07-17 00:43:47 +00:00
parent a4de02ec12
commit a4eb4f1646
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=63287

View File

@ -3673,14 +3673,18 @@ xpt_run_dev_sendq(struct cam_eb *bus)
splx(s);
if ((device->inq_flags & SID_CmdQue) != 0)
work_ccb->ccb_h.flags |= CAM_TAG_ACTION_VALID;
else
/*
* Clear this in case of a retried CCB that failed
* due to a rejected tag.
*/
work_ccb->ccb_h.flags &= ~CAM_TAG_ACTION_VALID;
/* In Target mode, the peripheral driver knows best... */
if (work_ccb->ccb_h.func_code == XPT_SCSI_IO) {
if ((device->inq_flags & SID_CmdQue) != 0
&& work_ccb->csio.tag_action != CAM_TAG_ACTION_NONE)
work_ccb->ccb_h.flags |= CAM_TAG_ACTION_VALID;
else
/*
* Clear this in case of a retried CCB that
* failed due to a rejected tag.
*/
work_ccb->ccb_h.flags &= ~CAM_TAG_ACTION_VALID;
}
/*
* Device queues can be shared among multiple sim instances