diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2024-01-20 20:42:32 +0300 | 
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2024-01-20 20:42:32 +0300 | 
| commit | c25b24fa72c734f8cd6c31a13548013263b26286 (patch) | |
| tree | b1baecba0aff4ffc8e687293dca9c046eb08fc0d /drivers/scsi/scsi_error.c | |
| parent | 125514880ddd381fdaaa4d11f32afdb55f1c0307 (diff) | |
| parent | 83ab68168a3d990d5ff39ab030ad5754cbbccb25 (diff) | |
| download | linux-c25b24fa72c734f8cd6c31a13548013263b26286.tar.xz | |
Merge tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi
Pull SCSI updates from James Bottomley:
 "Final round of fixes that came in too late to send in the first
  request.
  It's nine bug fixes and one version update (because of a bug fix) and
  one set of PCI ID additions. There's one bug fix in the core which is
  really a one liner (except that an additional sdev pointer was added
  for convenience) and the rest are in drivers"
* tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi:
  scsi: target: core: Add TMF to tmr_list handling
  scsi: core: Kick the requeue list after inserting when flushing
  scsi: fnic: unlock on error path in fnic_queuecommand()
  scsi: fcoe: Fix unsigned comparison with zero in store_ctlr_mode()
  scsi: mpi3mr: Fix mpi3mr_fw.c kernel-doc warnings
  scsi: smartpqi: Bump driver version to 2.1.26-030
  scsi: smartpqi: Fix logical volume rescan race condition
  scsi: smartpqi: Add new controller PCI IDs
  scsi: ufs: qcom: Remove unnecessary goto statement from ufs_qcom_config_esi()
  scsi: ufs: core: Remove the ufshcd_hba_exit() call from ufshcd_async_scan()
  scsi: ufs: core: Simplify power management during async scan
Diffstat (limited to 'drivers/scsi/scsi_error.c')
| -rw-r--r-- | drivers/scsi/scsi_error.c | 9 | 
1 files changed, 6 insertions, 3 deletions
diff --git a/drivers/scsi/scsi_error.c b/drivers/scsi/scsi_error.c index 885a7d5df3b9..79da4b1c1df0 100644 --- a/drivers/scsi/scsi_error.c +++ b/drivers/scsi/scsi_error.c @@ -2197,15 +2197,18 @@ void scsi_eh_flush_done_q(struct list_head *done_q)  	struct scsi_cmnd *scmd, *next;  	list_for_each_entry_safe(scmd, next, done_q, eh_entry) { +		struct scsi_device *sdev = scmd->device; +  		list_del_init(&scmd->eh_entry); -		if (scsi_device_online(scmd->device) && -		    !scsi_noretry_cmd(scmd) && scsi_cmd_retry_allowed(scmd) && -			scsi_eh_should_retry_cmd(scmd)) { +		if (scsi_device_online(sdev) && !scsi_noretry_cmd(scmd) && +		    scsi_cmd_retry_allowed(scmd) && +		    scsi_eh_should_retry_cmd(scmd)) {  			SCSI_LOG_ERROR_RECOVERY(3,  				scmd_printk(KERN_INFO, scmd,  					     "%s: flush retry cmd\n",  					     current->comm));  				scsi_queue_insert(scmd, SCSI_MLQUEUE_EH_RETRY); +				blk_mq_kick_requeue_list(sdev->request_queue);  		} else {  			/*  			 * If just we got sense for the device (called  | 
