summaryrefslogtreecommitdiffstats
path: root/block
diff options
context:
space:
mode:
authorJens Axboe <jaxboe@fusionio.com>2011-05-20 20:36:16 +0200
committerJens Axboe <jaxboe@fusionio.com>2011-05-20 20:36:16 +0200
commit0eb8e885726a3a93206510092bbc7e39e272f6ef (patch)
treed866a663df8d7d0f6a405d7eba45d889c12ba8bb /block
parentblk-throttle: Make no throttling rule group processing lockless (diff)
parentblock: add proper state guards to __elv_next_request (diff)
downloadlinux-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')
-rw-r--r--block/blk.h4
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;
}
}