Merge tag 'renesas-maintainers-for-v3.17' of git://git.kernel.org/pub/scm/linux/kerne...
[linux-2.6-block.git] / block / blk-core.c
index 40d654861c33e545dd79da5ce5a6dff40057e703..6f8dba161bfe1fbc50ee9d1091bd1ff6513e0aad 100644 (file)
@@ -43,6 +43,7 @@
 EXPORT_TRACEPOINT_SYMBOL_GPL(block_bio_remap);
 EXPORT_TRACEPOINT_SYMBOL_GPL(block_rq_remap);
 EXPORT_TRACEPOINT_SYMBOL_GPL(block_bio_complete);
+EXPORT_TRACEPOINT_SYMBOL_GPL(block_split);
 EXPORT_TRACEPOINT_SYMBOL_GPL(block_unplug);
 
 DEFINE_IDA(blk_queue_ida);
@@ -1218,6 +1219,8 @@ struct request *blk_make_request(struct request_queue *q, struct bio *bio,
        if (unlikely(!rq))
                return ERR_PTR(-ENOMEM);
 
+       blk_rq_set_block_pc(rq);
+
        for_each_bio(bio) {
                struct bio *bounce_bio = bio;
                int ret;
@@ -1234,6 +1237,22 @@ struct request *blk_make_request(struct request_queue *q, struct bio *bio,
 }
 EXPORT_SYMBOL(blk_make_request);
 
+/**
+ * blk_rq_set_block_pc - initialize a requeest to type BLOCK_PC
+ * @rq:                request to be initialized
+ *
+ */
+void blk_rq_set_block_pc(struct request *rq)
+{
+       rq->cmd_type = REQ_TYPE_BLOCK_PC;
+       rq->__data_len = 0;
+       rq->__sector = (sector_t) -1;
+       rq->bio = rq->biotail = NULL;
+       memset(rq->__cmd, 0, sizeof(rq->__cmd));
+       rq->cmd = rq->__cmd;
+}
+EXPORT_SYMBOL(blk_rq_set_block_pc);
+
 /**
  * blk_requeue_request - put a request back on queue
  * @q:         request queue where request should be inserted
@@ -3293,8 +3312,7 @@ int __init blk_dev_init(void)
 
        /* used for unplugging and affects IO latency/throughput - HIGHPRI */
        kblockd_workqueue = alloc_workqueue("kblockd",
-                                           WQ_MEM_RECLAIM | WQ_HIGHPRI |
-                                           WQ_POWER_EFFICIENT, 0);
+                                           WQ_MEM_RECLAIM | WQ_HIGHPRI, 0);
        if (!kblockd_workqueue)
                panic("Failed to create kblockd\n");