View Issue Details

IDProjectCategoryView StatusLast Update
0008343CentOS-6kernelpublic2015-03-27 00:21
Reportercocteau666 
PriorityimmediateSeveritycrashReproducibilitysometimes
Status newResolutionopen 
Product Version6.6 
Target VersionFixed in Version 
Summary0008343: storvsc: ring buffer failures may result in I/O freeze
DescriptionWhen ring buffer returns an error indicating retry, storvsc may not
return a proper error code to SCSI when bounce buffer is not used.
This has introduced I/O freeze on RAID running atop storvsc devices.
This patch fixes it by always returning a proper error code.

diff --git a/drivers/scsi/storvsc_drv.c b/drivers/scsi/storvsc_drv.c
index e3ba251..4cff0dd 100644
--- a/drivers/scsi/storvsc_drv.c
+++ b/drivers/scsi/storvsc_drv.c
@@ -1688,13 +1688,12 @@ static int storvsc_queuecommand(struct Scsi_Host *host, struct scsi_cmnd *scmnd)
     if (ret == -EAGAIN) {
         /* no more space */
 
- if (cmd_request->bounce_sgl_count) {
+ if (cmd_request->bounce_sgl_count)
             destroy_bounce_buffer(cmd_request->bounce_sgl,
                     cmd_request->bounce_sgl_count);
 
- ret = SCSI_MLQUEUE_DEVICE_BUSY;
- goto queue_error;
- }
+ ret = SCSI_MLQUEUE_DEVICE_BUSY;
+ goto queue_error;
     }
 
     return 0;
Additional Informationhttps://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=e86fb5e8ab95f10ec5f2e9430119d5d35020c951
TagsNo tags attached.

Activities

There are no notes attached to this issue.

Issue History

Date Modified Username Field Change
2015-03-27 00:21 cocteau666 New Issue