vserver 2.0 rc7
[linux-2.6.git] / drivers / block / noop-iosched.c
index 888c477..b1730b6 100644 (file)
 static int elevator_noop_merge(request_queue_t *q, struct request **req,
                               struct bio *bio)
 {
-       struct list_head *entry = &q->queue_head;
-       struct request *__rq;
        int ret;
 
-       if ((ret = elv_try_last_merge(q, bio))) {
+       ret = elv_try_last_merge(q, bio);
+       if (ret != ELEVATOR_NO_MERGE)
                *req = q->last_merge;
-               return ret;
-       }
 
-       while ((entry = entry->prev) != &q->queue_head) {
-               __rq = list_entry_rq(entry);
-
-               if (__rq->flags & (REQ_SOFTBARRIER | REQ_HARDBARRIER))
-                       break;
-               else if (__rq->flags & REQ_STARTED)
-                       break;
-
-               if (!blk_fs_request(__rq))
-                       continue;
-
-               if ((ret = elv_try_merge(__rq, bio))) {
-                       *req = __rq;
-                       q->last_merge = __rq;
-                       return ret;
-               }
-       }
-
-       return ELEVATOR_NO_MERGE;
+       return ret;
 }
 
 static void elevator_noop_merge_requests(request_queue_t *q, struct request *req,