]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/commit
Make CTL frontends report kern_data_resid for under-/overruns.
authormav <mav@FreeBSD.org>
Mon, 16 Jan 2017 16:19:55 +0000 (16:19 +0000)
committermav <mav@FreeBSD.org>
Mon, 16 Jan 2017 16:19:55 +0000 (16:19 +0000)
commitb1d86a4bdc5aa94695e936fe711bc485604fec1c
tree503e9ffd3dd4c74fd5e968f0a0143cb0320e55b2
parentcd5264373465a4709c43f187d1b968dbb04ac1b7
Make CTL frontends report kern_data_resid for under-/overruns.

It seems like kern_data_resid was never really implemented.  This change
finally does it.  Now frontends update this field while transferring data,
while CTL/backends getting it can more flexibly handle the result.
At this point behavior should not change significantly, still reporting
errors on write overrun, but that may be changed later, if we decide so.

CAM target frontend still does not properly handle overruns due to CAM API
limitations.  We may need to add some fields to struct ccb_accept_tio to
pass information about initiator requested transfer size(s).

MFC after: 2 weeks
12 files changed:
sys/cam/ctl/ctl.c
sys/cam/ctl/ctl_backend_block.c
sys/cam/ctl/ctl_backend_ramdisk.c
sys/cam/ctl/ctl_error.c
sys/cam/ctl/ctl_error.h
sys/cam/ctl/ctl_frontend_cam_sim.c
sys/cam/ctl/ctl_frontend_ioctl.c
sys/cam/ctl/ctl_frontend_iscsi.c
sys/cam/ctl/ctl_tpc.c
sys/cam/ctl/ctl_tpc_local.c
sys/cam/ctl/scsi_ctl.c
sys/cam/scsi/scsi_all.c