ACK: [PATCH 1/1] UBUNTU: SAUCE: hv_storvsc: Account for in-transit packets in the RESET path

Tim Gardner tim.gardner at canonical.com
Wed Apr 11 15:31:16 UTC 2012


On 04/11/2012 08:56 AM, Andy Whitcroft wrote:
> From: "K. Y. Srinivasan" <kys at microsoft.com>
> 
> Properly account for I/O in transit before returning from the RESET call.
> In the absense of this patch we could have a situation where the host may
> respond to a command that was issued prior to the issuance of the RESET
> command at some arbitrary time after responding to the RESET command.
> Currently, the host does not do anything with the RESET command and so
> it is ok to wait for the in-transit I/O to be accounted for. If the host
> side sematics changes, we will have to revisit this.
> 
> Signed-off-by: K. Y. Srinivasan <kys at microsoft.com>
> 
> BugLink: http://bugs.launchpad.net/bugs/978394
> Signed-off-by: Andy Whitcroft <apw at canonical.com>
> ---
>  drivers/scsi/storvsc_drv.c |    5 +++++
>  1 file changed, 5 insertions(+)
> 
> diff --git a/drivers/scsi/storvsc_drv.c b/drivers/scsi/storvsc_drv.c
> index 5848a97..af3383f 100644
> --- a/drivers/scsi/storvsc_drv.c
> +++ b/drivers/scsi/storvsc_drv.c
> @@ -1223,7 +1223,12 @@ static int storvsc_host_reset_handler(struct scsi_cmnd *scmnd)
>  	/*
>  	 * At this point, all outstanding requests in the adapter
>  	 * should have been flushed out and return to us
> +	 * There is a potential race here where the host may be in
> +	 * the process of responding when we return from here.
> +	 * Just wait for all in-transit packets to be accounted for
> +	 * before we return from here.
>  	 */
> +	storvsc_wait_to_drain(stor_device);
>  
>  	return SUCCESS;
>  }

Unless the SCSI layer is throttling requests after a reset command, then
I think this only makes the window smaller. AFAICT there is no locking
that would prevent a new I/O request from being submitted right after
the wait_to_drain event is signaled.

But ACK anyways.

rtg
-- 
Tim Gardner tim.gardner at canonical.com




More information about the kernel-team mailing list