Lines 609-622
cfcs_action(struct cam_sim *sim, union ccb *ccb)
Link Here
|
609 |
bcopy(csio->cdb_io.cdb_bytes, io->scsiio.cdb, |
609 |
bcopy(csio->cdb_io.cdb_bytes, io->scsiio.cdb, |
610 |
io->scsiio.cdb_len); |
610 |
io->scsiio.cdb_len); |
611 |
|
611 |
|
|
|
612 |
ccb->ccb_h.status |= CAM_SIM_QUEUED; |
612 |
err = ctl_queue(io); |
613 |
err = ctl_queue(io); |
613 |
if (err != CTL_RETVAL_COMPLETE) { |
614 |
if (err != CTL_RETVAL_COMPLETE) { |
614 |
printf("%s: func %d: error %d returned by " |
615 |
printf("%s: func %d: error %d returned by " |
615 |
"ctl_queue()!\n", __func__, |
616 |
"ctl_queue()!\n", __func__, |
616 |
ccb->ccb_h.func_code, err); |
617 |
ccb->ccb_h.func_code, err); |
617 |
ctl_free_io(io); |
618 |
ctl_free_io(io); |
618 |
} else { |
619 |
ccb->ccb_h.status = CAM_REQ_INVALID; |
619 |
ccb->ccb_h.status |= CAM_SIM_QUEUED; |
620 |
xpt_done(ccb); |
|
|
621 |
return; |
620 |
} |
622 |
} |
621 |
break; |
623 |
break; |
622 |
} |
624 |
} |