block: fix regression with block enabled tagging
[deliverable/linux.git] / include / linux / blkdev.h
index 1e1fa3f93d5fc804627108a32737527e2b44b4d5..99617cf7dd1a5bd29866e33e0ced51ae28279b3b 100644 (file)
@@ -118,7 +118,18 @@ struct request {
        struct bio *bio;
        struct bio *biotail;
 
-       struct hlist_node hash; /* merge hash */
+       /*
+        * The hash is used inside the scheduler, and killed once the
+        * request reaches the dispatch list. The ipi_list is only used
+        * to queue the request for softirq completion, which is long
+        * after the request has been unhashed (and even removed from
+        * the dispatch list).
+        */
+       union {
+               struct hlist_node hash; /* merge hash */
+               struct list_head ipi_list;
+       };
+
        /*
         * The rb_node is only used inside the io scheduler, requests
         * are pruned when moved to the dispatch queue. So let the
This page took 0.027689 seconds and 5 git commands to generate.