]> err.no Git - linux-2.6/blobdiff - block/elevator.c
[CASSINI]: Fix endianness bug.
[linux-2.6] / block / elevator.c
index ec23ca02f2fed9e57a8977c36cd331a36cd5fbf9..e452deb803957c1f71d71901ef669a630036363b 100644 (file)
@@ -390,7 +390,7 @@ EXPORT_SYMBOL(elv_rb_find);
 
 /*
  * Insert rq into dispatch queue of q.  Queue lock must be held on
- * entry.  rq is sort insted into the dispatch queue. To be used by
+ * entry.  rq is sort instead into the dispatch queue. To be used by
  * specific elevators.
  */
 void elv_dispatch_sort(struct request_queue *q, struct request *rq)
@@ -712,6 +712,14 @@ struct request *elv_next_request(struct request_queue *q)
        int ret;
 
        while ((rq = __elv_next_request(q)) != NULL) {
+               /*
+                * Kill the empty barrier place holder, the driver must
+                * not ever see it.
+                */
+               if (blk_empty_barrier(rq)) {
+                       end_queued_request(rq, 1);
+                       continue;
+               }
                if (!(rq->cmd_flags & REQ_STARTED)) {
                        /*
                         * This is the first time the device driver
@@ -952,7 +960,7 @@ void elv_unregister_queue(struct request_queue *q)
                __elv_unregister_queue(q->elevator);
 }
 
-int elv_register(struct elevator_type *e)
+void elv_register(struct elevator_type *e)
 {
        char *def = "";
 
@@ -967,7 +975,6 @@ int elv_register(struct elevator_type *e)
                                def = " (default)";
 
        printk(KERN_INFO "io scheduler %s registered%s\n", e->elevator_name, def);
-       return 0;
 }
 EXPORT_SYMBOL_GPL(elv_register);