Staging: hv: storvsc: Move and cleanup storvsc_remove()

Relocate the storvsc_remove() function to a different location in the file
and invoke scsi_host_put() only after all the cleanup.

Signed-off-by: K. Y. Srinivasan <kys@microsoft.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
K. Y. Srinivasan 2012-01-12 12:37:59 -08:00 committed by Greg Kroah-Hartman
parent 4b270c8b23
commit ddcbf65e48
1 changed files with 12 additions and 16 deletions

View File

@ -1083,22 +1083,6 @@ static unsigned int copy_to_bounce_buffer(struct scatterlist *orig_sgl,
return total_copied;
}
static int storvsc_remove(struct hv_device *dev)
{
struct storvsc_device *stor_device = hv_get_drvdata(dev);
struct Scsi_Host *host = stor_device->host;
scsi_remove_host(host);
scsi_host_put(host);
storvsc_dev_remove(dev);
return 0;
}
static int storvsc_get_chs(struct scsi_device *sdev, struct block_device * bdev,
sector_t capacity, int *info)
{
@ -1526,6 +1510,18 @@ err_out0:
return ret;
}
static int storvsc_remove(struct hv_device *dev)
{
struct storvsc_device *stor_device = hv_get_drvdata(dev);
struct Scsi_Host *host = stor_device->host;
scsi_remove_host(host);
storvsc_dev_remove(dev);
scsi_host_put(host);
return 0;
}
static struct hv_driver storvsc_drv = {
.name = KBUILD_MODNAME,
.id_table = id_table,