diff options
author | Nicholas Bellinger <nab@linux-iscsi.org> | 2012-07-11 17:22:16 -0400 |
---|---|---|
committer | James Bottomley <JBottomley@Parallels.com> | 2012-07-20 03:59:03 -0400 |
commit | 59057fbc37178f10a196ab7ec170b80273f75a47 (patch) | |
tree | 79b85034672f27cf605d90736c8f1a75ac2c0656 /drivers/virtio/virtio.c | |
parent | 0b1017aab197271a78169fde3d7e487bb721997c (diff) |
[SCSI] virtio-scsi: Add vdrv->scan for post VIRTIO_CONFIG_S_DRIVER_OK LUN scanning
This patch changes virtio-scsi to use a new virtio_driver->scan() callback
so that scsi_scan_host() can be properly invoked once virtio_dev_probe() has
set add_status(dev, VIRTIO_CONFIG_S_DRIVER_OK) to signal active virtio-ring
operation, instead of from within virtscsi_probe().
This fixes a bug where SCSI LUN scanning for both virtio-scsi-raw and
virtio-scsi/tcm_vhost setups was happening before VIRTIO_CONFIG_S_DRIVER_OK
had been set, causing VIRTIO_SCSI_S_BAD_TARGET to occur. This fixes a bug
with virtio-scsi/tcm_vhost where LUN scan was not detecting LUNs.
Tested with virtio-scsi-raw + virtio-scsi/tcm_vhost w/ IBLOCK on 3.5-rc2 code.
Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
Acked-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: James Bottomley <JBottomley@Parallels.com>
Diffstat (limited to 'drivers/virtio/virtio.c')
-rw-r--r-- | drivers/virtio/virtio.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/virtio/virtio.c b/drivers/virtio/virtio.c index f3558070e375..c3b3f7f0d9d1 100644 --- a/drivers/virtio/virtio.c +++ b/drivers/virtio/virtio.c | |||
@@ -141,8 +141,11 @@ static int virtio_dev_probe(struct device *_d) | |||
141 | err = drv->probe(dev); | 141 | err = drv->probe(dev); |
142 | if (err) | 142 | if (err) |
143 | add_status(dev, VIRTIO_CONFIG_S_FAILED); | 143 | add_status(dev, VIRTIO_CONFIG_S_FAILED); |
144 | else | 144 | else { |
145 | add_status(dev, VIRTIO_CONFIG_S_DRIVER_OK); | 145 | add_status(dev, VIRTIO_CONFIG_S_DRIVER_OK); |
146 | if (drv->scan) | ||
147 | drv->scan(dev); | ||
148 | } | ||
146 | 149 | ||
147 | return err; | 150 | return err; |
148 | } | 151 | } |