-
Jens Axboe authored
Hi James, Here are the changes that are good outside the other changes :-) scsi_lib: o ->errors is used as the scsi status byte for REQ_BLOCK_PC o ->data_len is the residual byte count o call __scsi_end_request even for !good_sectors if status is good. This legitimately can happen for REQ_BLOCK_PC commands sent from a user space program, if it gets the command setup wrong (or weird). Right now this will hang that queue. scsi_merge: o set SCpnt->request_bufflen to ->data_len, this is the authoritative io byte count for REQ_BLOCK_PC. Here we deal in bytes and not sectors. sr + sd: o Set transfersize and underlow correctly for REQ_BLOCK_PC sr_ioctl o We want to return -EIO for command failure, not EINVAL. That is pretty stupid :-) ===== drivers/scsi/scsi_lib.c 1.35 vs edited =====
cbfec645