Skip to content

Commit

Permalink
Staging: hv: storvsc: Move and cleanup storvsc_remove()
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
K. Y. Srinivasan authored and Greg Kroah-Hartman committed Feb 9, 2012
1 parent 4b270c8 commit ddcbf65
Showing 1 changed file with 12 additions and 16 deletions.
28 changes: 12 additions & 16 deletions drivers/staging/hv/storvsc_drv.c
Original file line number Diff line number Diff line change
Expand Up @@ -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)
{
Expand Down Expand Up @@ -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,
Expand Down

0 comments on commit ddcbf65

Please sign in to comment.