]> Pileus Git - ~andy/linux/blobdiff - block/elevator.c
Revert "block: recursive merge requests"
[~andy/linux] / block / elevator.c
index 99838f460b44d5c399505071b3d9105218e30c68..91e18f8af9becaace380cc687d279eb1f47cb79a 100644 (file)
@@ -515,7 +515,6 @@ static bool elv_attempt_insert_merge(struct request_queue *q,
                                     struct request *rq)
 {
        struct request *__rq;
-       bool ret;
 
        if (blk_queue_nomerges(q))
                return false;
@@ -529,21 +528,14 @@ static bool elv_attempt_insert_merge(struct request_queue *q,
        if (blk_queue_noxmerges(q))
                return false;
 
-       ret = false;
        /*
         * See if our hash lookup can find a potential backmerge.
         */
-       while (1) {
-               __rq = elv_rqhash_find(q, blk_rq_pos(rq));
-               if (!__rq || !blk_attempt_req_merge(q, __rq, rq))
-                       break;
-
-               /* The merged request could be merged with others, try again */
-               ret = true;
-               rq = __rq;
-       }
+       __rq = elv_rqhash_find(q, blk_rq_pos(rq));
+       if (__rq && blk_attempt_req_merge(q, __rq, rq))
+               return true;
 
-       return ret;
+       return false;
 }
 
 void elv_merged_request(struct request_queue *q, struct request *rq, int type)