]> www.pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - include/linux/blkdev.h
block: inherit CPU completion on bio->rq and rq->rq merges
[linux-2.6-omap-h63xx.git] / include / linux / blkdev.h
index 10aa46c8f170000203c2b8d9505f1251c8ff9ec5..12df8efeef1960288b3d1846be828d5d361eddca 100644 (file)
@@ -17,6 +17,7 @@
 #include <linux/module.h>
 #include <linux/stringify.h>
 #include <linux/bsg.h>
+#include <linux/smp.h>
 
 #include <asm/scatterlist.h>
 
@@ -139,7 +140,8 @@ enum rq_flag_bits {
  */
 struct request {
        struct list_head queuelist;
-       struct list_head donelist;
+       struct call_single_data csd;
+       int cpu;
 
        struct request_queue *q;
 
@@ -420,6 +422,7 @@ struct request_queue
 #define QUEUE_FLAG_ELVSWITCH   8       /* don't use elevator, just do FIFO */
 #define QUEUE_FLAG_BIDI                9       /* queue supports bidi requests */
 #define QUEUE_FLAG_NOMERGES    10      /* disable merge attempts */
+#define QUEUE_FLAG_SAME_COMP   11      /* force complete on same CPU */
 
 static inline int queue_is_locked(struct request_queue *q)
 {
@@ -542,6 +545,7 @@ enum {
 #define blk_pm_request(rq)     \
        (blk_pm_suspend_request(rq) || blk_pm_resume_request(rq))
 
+#define blk_rq_cpu_valid(rq)   ((rq)->cpu != -1)
 #define blk_sorted_rq(rq)      ((rq)->cmd_flags & REQ_SORTED)
 #define blk_barrier_rq(rq)     ((rq)->cmd_flags & REQ_HARDBARRIER)
 #define blk_fua_rq(rq)         ((rq)->cmd_flags & REQ_FUA)