diff options
Diffstat (limited to 'block/elevator.c')
-rw-r--r-- | block/elevator.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/block/elevator.c b/block/elevator.c index 2569512830d3..270e0972eb9f 100644 --- a/block/elevator.c +++ b/block/elevator.c | |||
@@ -673,6 +673,11 @@ void elv_insert(struct request_queue *q, struct request *rq, int where) | |||
673 | q->elevator->ops->elevator_add_req_fn(q, rq); | 673 | q->elevator->ops->elevator_add_req_fn(q, rq); |
674 | break; | 674 | break; |
675 | 675 | ||
676 | case ELEVATOR_INSERT_FLUSH: | ||
677 | rq->cmd_flags |= REQ_SOFTBARRIER; | ||
678 | blk_insert_flush(rq); | ||
679 | break; | ||
680 | |||
676 | default: | 681 | default: |
677 | printk(KERN_ERR "%s: bad insertion point %d\n", | 682 | printk(KERN_ERR "%s: bad insertion point %d\n", |
678 | __func__, where); | 683 | __func__, where); |
@@ -785,6 +790,8 @@ void elv_abort_queue(struct request_queue *q) | |||
785 | { | 790 | { |
786 | struct request *rq; | 791 | struct request *rq; |
787 | 792 | ||
793 | blk_abort_flushes(q); | ||
794 | |||
788 | while (!list_empty(&q->queue_head)) { | 795 | while (!list_empty(&q->queue_head)) { |
789 | rq = list_entry_rq(q->queue_head.next); | 796 | rq = list_entry_rq(q->queue_head.next); |
790 | rq->cmd_flags |= REQ_QUIET; | 797 | rq->cmd_flags |= REQ_QUIET; |