NVMe: Set queue flags correctly
authorMatthew Wilcox <matthew.r.wilcox@intel.com>
Tue, 10 Jan 2012 21:35:08 +0000 (14:35 -0700)
committerMatthew Wilcox <matthew.r.wilcox@intel.com>
Tue, 10 Jan 2012 21:29:23 +0000 (16:29 -0500)
QUEUE_FLAG_* are flags (other than QUEUE_FLAG_DEFAULT), so they cannot
be ORed together.  Set the queue flags using queue_flag_set_unlocked().

Reported-by: Donald Wood <donald.e.wood@intel.com>
Signed-off-by: Matthew Wilcox <matthew.r.wilcox@intel.com>
drivers/block/nvme.c

index 3cf82c27a5447ff068ba43923d2d599ef52a6dc9..b583603fae5bbe1c02532c54a338c31acdc6fa55 100644 (file)
@@ -1315,8 +1315,10 @@ static struct nvme_ns *nvme_alloc_ns(struct nvme_dev *dev, int nsid,
        ns->queue = blk_alloc_queue(GFP_KERNEL);
        if (!ns->queue)
                goto out_free_ns;
-       ns->queue->queue_flags = QUEUE_FLAG_DEFAULT | QUEUE_FLAG_NOMERGES |
-                               QUEUE_FLAG_NONROT | QUEUE_FLAG_DISCARD;
+       ns->queue->queue_flags = QUEUE_FLAG_DEFAULT;
+       queue_flag_set_unlocked(QUEUE_FLAG_NOMERGES, ns->queue);
+       queue_flag_set_unlocked(QUEUE_FLAG_NONROT, ns->queue);
+/*     queue_flag_set_unlocked(QUEUE_FLAG_DISCARD, ns->queue); */
        blk_queue_make_request(ns->queue, nvme_make_request);
        ns->dev = dev;
        ns->queue->queuedata = ns;