diff options
author | Jens Axboe <jaxboe@fusionio.com> | 2011-05-20 20:36:16 +0200 |
---|---|---|
committer | Jens Axboe <jaxboe@fusionio.com> | 2011-05-20 20:36:16 +0200 |
commit | 0eb8e885726a3a93206510092bbc7e39e272f6ef (patch) | |
tree | d866a663df8d7d0f6a405d7eba45d889c12ba8bb /block/blk.h | |
parent | blk-throttle: Make no throttling rule group processing lockless (diff) | |
parent | block: add proper state guards to __elv_next_request (diff) | |
download | linux-0eb8e885726a3a93206510092bbc7e39e272f6ef.tar.xz linux-0eb8e885726a3a93206510092bbc7e39e272f6ef.zip |
Merge branch 'for-linus' into for-2.6.40/core
This patch merges in a fix that missed 2.6.39 final.
Conflicts:
block/blk.h
Diffstat (limited to 'block/blk.h')
-rw-r--r-- | block/blk.h | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/block/blk.h b/block/blk.h index 1f798b5a6f19..d6586287adc9 100644 --- a/block/blk.h +++ b/block/blk.h @@ -61,6 +61,7 @@ static inline struct request *__elv_next_request(struct request_queue *q) rq = list_entry_rq(q->queue_head.next); return rq; } + /* * Flush request is running and flush request isn't queueable * in the drive, we can hold the queue till flush request is @@ -81,7 +82,8 @@ static inline struct request *__elv_next_request(struct request_queue *q) q->flush_queue_delayed = 1; return NULL; } - if (!q->elevator->ops->elevator_dispatch_fn(q, 0)) + if (test_bit(QUEUE_FLAG_DEAD, &q->queue_flags) || + !q->elevator->ops->elevator_dispatch_fn(q, 0)) return NULL; } } |