Merge tag 'for-4.15/dm-changes-2' of git://git.kernel.org/pub/scm/linux/kernel/git...
[muen/linux.git] / drivers / md / dm-table.c
index 3acf8f56eb648a89e280ac2ba2dbe2589bec0b42..88130b5d95f909ead8441dec7f3fb5d80a7914c7 100644 (file)
@@ -1000,7 +1000,7 @@ verify_rq_based:
        list_for_each_entry(dd, devices, list) {
                struct request_queue *q = bdev_get_queue(dd->dm_dev->bdev);
 
-               if (!blk_queue_stackable(q)) {
+               if (!queue_is_rq_based(q)) {
                        DMERR("table load rejected: including"
                              " non-request-stackable devices");
                        return -EINVAL;
@@ -1848,19 +1848,6 @@ void dm_table_set_restrictions(struct dm_table *t, struct request_queue *q,
         */
        if (blk_queue_add_random(q) && dm_table_all_devices_attribute(t, device_is_not_random))
                queue_flag_clear_unlocked(QUEUE_FLAG_ADD_RANDOM, q);
-
-       /*
-        * QUEUE_FLAG_STACKABLE must be set after all queue settings are
-        * visible to other CPUs because, once the flag is set, incoming bios
-        * are processed by request-based dm, which refers to the queue
-        * settings.
-        * Until the flag set, bios are passed to bio-based dm and queued to
-        * md->deferred where queue settings are not needed yet.
-        * Those bios are passed to request-based dm at the resume time.
-        */
-       smp_mb();
-       if (dm_table_request_based(t))
-               queue_flag_set_unlocked(QUEUE_FLAG_STACKABLE, q);
 }
 
 unsigned int dm_table_get_num_targets(struct dm_table *t)