Doug, > The SCSI PRE-FETCH (10 or 16) command is present both on hard disks > and some SSDs. It is useful when the address of the next block(s) to > be read is known but it is not following the LBA of the current READ > (so read-ahead won't help). It returns two "good" SCSI Status values. > If the requested blocks have fitted (or will most likely fit (when > the IMMED bit is set)) into the disk's cache, it returns CONDITION > MET. If it didn't (or will not) fit then it returns GOOD status. > > The goal of this patch is to stop the SCSI subsystem treating the > CONDITION MET SCSI status as an error. The current state makes the > PRE-FETCH command effectively unusable via pass-throughs. Next time, commentary and changelog needs to go after the "---" separator: > A cleanup of the scsi_io_completion() function in scsi_lib.c has > been moved out of this patch to its own patchset titled: > "scsi_io_completion cleanup". > > > ChangeLog to v4 (removing work done in v3 and v2, leaving): > - expand scsi_status_is_good() to check for CONDITION MET > - add another corner case in scsi_io_completion() adjacent > to the one for the RECOVERED ERROR sense key case. That > is another "non-error" > > Signed-off-by: Douglas Gilbert <dgilbert@xxxxxxxxxxxx> > --- << Here > drivers/scsi/scsi_lib.c | 11 +++++++++++ > include/scsi/scsi.h | 2 ++ > 2 files changed, 13 insertions(+) Applied to 4.17/scsi-queue. Thank you! -- Martin K. Petersen Oracle Linux Engineering