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:
parent
4b270c8b23
commit
ddcbf65e48
1 changed files with 12 additions and 16 deletions
|
@ -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 @@ static int storvsc_probe(struct hv_device *device,
|
|||
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,
|
||||
|
|
Loading…
Reference in a new issue