diff --git a/block/mq-deadline.c b/block/mq-deadline.c index 8a4694619bcf..a92142128acb 100644 --- a/block/mq-deadline.c +++ b/block/mq-deadline.c @@ -306,14 +306,11 @@ static struct request *deadline_skip_seq_writes(struct deadline_data *dd, struct request *rq) { sector_t pos = blk_rq_pos(rq); - sector_t skipped_sectors = 0; - while (rq) { - if (blk_rq_pos(rq) != pos + skipped_sectors) - break; - skipped_sectors += blk_rq_sectors(rq); + do { + pos += blk_rq_sectors(rq); rq = deadline_latter_request(rq); - } + } while (rq && blk_rq_pos(rq) == pos); return rq; }