Merge tag 'scsi-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb...
[sfrench/cifs-2.6.git] / drivers / scsi / scsi_lib.c
index 1d83f29aee740a4c971017d388e3233bdd2112f5..0dfec0dedd5e4abd1f1a510a5d12077770dde134 100644 (file)
@@ -2167,8 +2167,6 @@ void __scsi_init_queue(struct Scsi_Host *shost, struct request_queue *q)
 {
        struct device *dev = shost->dma_dev;
 
-       queue_flag_set_unlocked(QUEUE_FLAG_SCSI_PASSTHROUGH, q);
-
        /*
         * this limit is imposed by hardware restrictions
         */
@@ -2250,7 +2248,7 @@ struct request_queue *scsi_old_alloc_queue(struct scsi_device *sdev)
        struct Scsi_Host *shost = sdev->host;
        struct request_queue *q;
 
-       q = blk_alloc_queue_node(GFP_KERNEL, NUMA_NO_NODE);
+       q = blk_alloc_queue_node(GFP_KERNEL, NUMA_NO_NODE, NULL);
        if (!q)
                return NULL;
        q->cmd_size = sizeof(struct scsi_cmnd) + shost->hostt->cmd_size;
@@ -2266,6 +2264,7 @@ struct request_queue *scsi_old_alloc_queue(struct scsi_device *sdev)
        }
 
        __scsi_init_queue(shost, q);
+       blk_queue_flag_set(QUEUE_FLAG_SCSI_PASSTHROUGH, q);
        blk_queue_prep_rq(q, scsi_prep_fn);
        blk_queue_unprep_rq(q, scsi_unprep_fn);
        blk_queue_softirq_done(q, scsi_softirq_done);
@@ -2297,6 +2296,7 @@ struct request_queue *scsi_mq_alloc_queue(struct scsi_device *sdev)
 
        sdev->request_queue->queuedata = sdev;
        __scsi_init_queue(sdev->host, sdev->request_queue);
+       blk_queue_flag_set(QUEUE_FLAG_SCSI_PASSTHROUGH, sdev->request_queue);
        return sdev->request_queue;
 }