sd = sdev->hostdata;
        sdev->no_uld_attach = !sd || !sd->expose_device;
 
-       if (sd)
-               queue_depth = sd->queue_depth != 0 ?
-                       sd->queue_depth : sdev->host->can_queue;
-       else
+       if (sd) {
+               if (sd->external)
+                       queue_depth = EXTERNAL_QD;
+               else
+                       queue_depth = sd->queue_depth != 0 ?
+                                       sd->queue_depth : sdev->host->can_queue;
+       } else
                queue_depth = sdev->host->can_queue;
 
        scsi_change_queue_depth(sdev, queue_depth);
                this_device->queue_depth = h->nr_cmds;
        }
 
+       if (this_device->external)
+               this_device->queue_depth = EXTERNAL_QD;
+
        if (is_OBDR_device) {
                /* See if this is a One-Button-Disaster-Recovery device
                 * by looking for "$DR-10" at offset 43 in inquiry data.
        int rc;
        struct ext_report_lun_entry *rle;
 
-       /*
-        * external targets don't support BMIC
-        */
-       if (dev->external) {
-               dev->queue_depth = 7;
-               return;
-       }
-
        rle = &rlep->LUN[rle_index];
 
        dev->ioaccel_handle = rle->ioaccel_handle;