diff options
Diffstat (limited to 'block/blk.h')
-rw-r--r-- | block/blk.h | 12 |
1 files changed, 4 insertions, 8 deletions
diff --git a/block/blk.h b/block/blk.h index 9d2ee8f4d9af..284b500852bd 100644 --- a/block/blk.h +++ b/block/blk.h | |||
@@ -51,21 +51,17 @@ static inline void blk_clear_rq_complete(struct request *rq) | |||
51 | */ | 51 | */ |
52 | #define ELV_ON_HASH(rq) (!hlist_unhashed(&(rq)->hash)) | 52 | #define ELV_ON_HASH(rq) (!hlist_unhashed(&(rq)->hash)) |
53 | 53 | ||
54 | struct request *blk_do_flush(struct request_queue *q, struct request *rq); | 54 | void blk_insert_flush(struct request *rq); |
55 | void blk_abort_flushes(struct request_queue *q); | ||
55 | 56 | ||
56 | static inline struct request *__elv_next_request(struct request_queue *q) | 57 | static inline struct request *__elv_next_request(struct request_queue *q) |
57 | { | 58 | { |
58 | struct request *rq; | 59 | struct request *rq; |
59 | 60 | ||
60 | while (1) { | 61 | while (1) { |
61 | while (!list_empty(&q->queue_head)) { | 62 | if (!list_empty(&q->queue_head)) { |
62 | rq = list_entry_rq(q->queue_head.next); | 63 | rq = list_entry_rq(q->queue_head.next); |
63 | if (!(rq->cmd_flags & (REQ_FLUSH | REQ_FUA)) || | 64 | return rq; |
64 | (rq->cmd_flags & REQ_FLUSH_SEQ)) | ||
65 | return rq; | ||
66 | rq = blk_do_flush(q, rq); | ||
67 | if (rq) | ||
68 | return rq; | ||
69 | } | 65 | } |
70 | 66 | ||
71 | if (!q->elevator->ops->elevator_dispatch_fn(q, 0)) | 67 | if (!q->elevator->ops->elevator_dispatch_fn(q, 0)) |