From: K. Y. Srinivasan Date: Tue, 10 May 2011 14:54:10 +0000 (-0700) Subject: Staging: hv: Cleanup blkvsc_shutdown() X-Git-Url: http://drtracing.org/?a=commitdiff_plain;h=149b11936159b13995d940c21ec622f756dfd66d;p=deliverable%2Flinux.git Staging: hv: Cleanup blkvsc_shutdown() Use the newly introduced function to wait for draining I/Os to cleanup blkvsc_shutdown(). Signed-off-by: K. Y. Srinivasan Signed-off-by: Haiyang Zhang Signed-off-by: Abhishek Kane Signed-off-by: Hank Janssen Signed-off-by: Greg Kroah-Hartman --- diff --git a/drivers/staging/hv/blkvsc_drv.c b/drivers/staging/hv/blkvsc_drv.c index e6a59d753922..0e16b71510d6 100644 --- a/drivers/staging/hv/blkvsc_drv.c +++ b/drivers/staging/hv/blkvsc_drv.c @@ -588,15 +588,13 @@ static void blkvsc_shutdown(struct hv_device *dev) spin_unlock_irqrestore(&blkdev->lock, flags); - while (blkdev->num_outstanding_reqs) { - DPRINT_INFO(STORVSC, "waiting for %d requests to complete...", - blkdev->num_outstanding_reqs); - udelay(100); - } - - blkvsc_do_operation(blkdev, DO_FLUSH); + /* + * Now wait for all outgoing I/O to be drained. + */ + storvsc_wait_to_drain((struct storvsc_device *)dev->ext); + } static int blkvsc_release(struct gendisk *disk, fmode_t mode)