> 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 "---"
> 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 <dgilb...@interlog.com>
> 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