iommu/io-pgtable-arm: Add built time dependency
[cascardo/linux.git] / block / blk-core.c
index 3ad4055..794c3e7 100644 (file)
@@ -607,7 +607,7 @@ struct request_queue *blk_alloc_queue_node(gfp_t gfp_mask, int node_id)
        q->backing_dev_info.ra_pages =
                        (VM_MAX_READAHEAD * 1024) / PAGE_CACHE_SIZE;
        q->backing_dev_info.state = 0;
-       q->backing_dev_info.capabilities = BDI_CAP_MAP_COPY;
+       q->backing_dev_info.capabilities = 0;
        q->backing_dev_info.name = "block";
        q->node = node_id;
 
@@ -2048,6 +2048,13 @@ int blk_insert_cloned_request(struct request_queue *q, struct request *rq)
            should_fail_request(&rq->rq_disk->part0, blk_rq_bytes(rq)))
                return -EIO;
 
+       if (q->mq_ops) {
+               if (blk_queue_io_stat(q))
+                       blk_account_io_start(rq, true);
+               blk_mq_insert_request(rq, false, true, true);
+               return 0;
+       }
+
        spin_lock_irqsave(q->queue_lock, flags);
        if (unlikely(blk_queue_dying(q))) {
                spin_unlock_irqrestore(q->queue_lock, flags);
@@ -2907,7 +2914,7 @@ EXPORT_SYMBOL_GPL(blk_rq_unprep_clone);
 static void __blk_rq_prep_clone(struct request *dst, struct request *src)
 {
        dst->cpu = src->cpu;
-       dst->cmd_flags = (src->cmd_flags & REQ_CLONE_MASK) | REQ_NOMERGE;
+       dst->cmd_flags |= (src->cmd_flags & REQ_CLONE_MASK) | REQ_NOMERGE;
        dst->cmd_type = src->cmd_type;
        dst->__sector = blk_rq_pos(src);
        dst->__data_len = blk_rq_bytes(src);
@@ -2945,8 +2952,6 @@ int blk_rq_prep_clone(struct request *rq, struct request *rq_src,
        if (!bs)
                bs = fs_bio_set;
 
-       blk_rq_init(NULL, rq);
-
        __rq_for_each_bio(bio_src, rq_src) {
                bio = bio_clone_fast(bio_src, gfp_mask, bs);
                if (!bio)