Commit:     938e2ac0b7ac72d264783b0b548eb6078c295294
Parent:     7d620a4e531ae4d432d3c88f7d4b75327d881a87
Author:     Matthew Wilcox <[EMAIL PROTECTED]>
AuthorDate: Mon Jan 15 18:07:09 2007 -0700
Committer:  James Bottomley <[EMAIL PROTECTED]>
CommitDate: Sat Jan 27 09:02:36 2007 -0600

    [SCSI] Fix scsi_add_device() for async scanning
    I had thought that all drivers which didn't call scsi_scan_host()
    called scsi_scan_target().  Some, such as sbp2, mptsas and libata-scsi,
    call scsi_add_device() or __scsi_add_device().  We just need to wait
    for the currently executing async scans to complete first.  This is the
    same code that's in scsi_scan_target(), except that we have to return
    an error instead of void when we're declining to scan at all.
    Signed-off-by: Matthew Wilcox <[EMAIL PROTECTED]>
    Signed-off-by: James Bottomley <[EMAIL PROTECTED]>
 drivers/scsi/scsi_scan.c |    6 ++++++
 1 files changed, 6 insertions(+), 0 deletions(-)

diff --git a/drivers/scsi/scsi_scan.c b/drivers/scsi/scsi_scan.c
index b83d03c..96b7cbd 100644
--- a/drivers/scsi/scsi_scan.c
+++ b/drivers/scsi/scsi_scan.c
@@ -1453,6 +1453,12 @@ struct scsi_device *__scsi_add_device(struct Scsi_Host 
*shost, uint channel,
        struct device *parent = &shost->shost_gendev;
        struct scsi_target *starget;
+       if (strncmp(scsi_scan_type, "none", 4) == 0)
+               return ERR_PTR(-ENODEV);
+       if (!shost->async_scan)
+               scsi_complete_async_scans();
        starget = scsi_alloc_target(parent, channel, id);
        if (!starget)
                return ERR_PTR(-ENOMEM);
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at

Reply via email to