diff options
Diffstat (limited to 'drivers/block/elevator.c')
| -rw-r--r-- | drivers/block/elevator.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/drivers/block/elevator.c b/drivers/block/elevator.c index 9917ad055a6d..3df8aab7f497 100644 --- a/drivers/block/elevator.c +++ b/drivers/block/elevator.c @@ -46,6 +46,8 @@ int elevator_linus_merge(request_queue_t *q, struct request **req, break; } + if (!*req && BHRQ_IN_ORDER(bh, __rq)) + *req = __rq; if (__rq->sem) continue; if (__rq->cmd != rw) @@ -65,8 +67,7 @@ int elevator_linus_merge(request_queue_t *q, struct request **req, __rq->elevator_sequence -= count; *req = __rq; break; - } else if (!*req && BHRQ_IN_ORDER(bh, __rq)) - *req = __rq; + } } return ret; |
