On Tue, 2023-09-05 at 18:15 -0500, Mike Christie wrote: > If scsi_execute_cmd returns < 0, it doesn't initialize the sshdr, so > we > shouldn't access the sshdr. If it returns 0, then the cmd executed > successfully, so there is no need to check the sshdr. sd_sync_cache > will > only access the sshdr if it's been setup because it calls > scsi_status_is_check_condition before accessing it. However, the > sd_sync_cache caller, sd_suspend_common, does not check. > > sd_suspend_common is only checking for ILLEGAL_REQUEST which it's > using > to determine if the command is supported. If it's not it just ignores > the error. So to fix its sshdr use this patch just moves that check > to > sd_sync_cache where it converts ILLEGAL_REQUEST to success/0. > sd_suspend_common was ignoring that error and sd_shutdown doesn't > check > for errors so there will be no behavior changes. > > Signed-off-by: Mike Christie <michael.christie@xxxxxxxxxx> > Reviewed-by: Christoph Hellwig <hch@xxxxxx> Reviewed-by: Martin Wilck <mwilck@xxxxxxxx>