X-Git-Url: http://pileus.org/git/?a=blobdiff_plain;f=block%2Felevator.c;h=91e18f8af9becaace380cc687d279eb1f47cb79a;hb=5d381efb3d1f1ef10535a31ca0dd9b22fe1e1922;hp=99838f460b44d5c399505071b3d9105218e30c68;hpb=6898e3bd11cc9a931ef115eee9000ac9d8f8c3cf;p=~andy%2Flinux diff --git a/block/elevator.c b/block/elevator.c index 99838f460b4..91e18f8af9b 100644 --- a/block/elevator.c +++ b/block/elevator.c @@ -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)