> -----Original Message----- > From: Long Li [mailto:longli@xxxxxxxxxxxxx] > Sent: Friday, December 5, 2014 7:38 PM > To: linux-scsi@xxxxxxxxxxxxxxx > Cc: KY Srinivasan; Haiyang Zhang; JBottomley@xxxxxxxxxxxxx; > devel@xxxxxxxxxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx; Long Li > Subject: drivers:scsi:storvsc: Fix a bug in handling ring buffer failures that may > result in I/O freeze > > When 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. > > Signed-off-by: Long Li <longli@xxxxxxxxxxxxx> > Reviewed-by: K. Y. Srinivasan <kys@xxxxxxxxxxxxx> Signed-off-by: K. Y. Srinivasan <kys@xxxxxxxxxxxxx> cc: stable@xxxxxxxxxxxxxxx > --- > drivers/scsi/storvsc_drv.c | 7 +++---- > 1 file changed, 3 insertions(+), 4 deletions(-) > > 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; > -- > 2.1.0 _______________________________________________ devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxx http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel