aboutsummaryrefslogtreecommitdiffstats
path: root/block/blk-core.c
diff options
context:
space:
mode:
authorBart Van Assche <bvanassche@acm.org>2012-11-28 07:42:38 -0500
committerJens Axboe <axboe@kernel.dk>2012-12-06 08:30:58 -0500
commit3f3299d5c0268d6cc3f47b446e8aca436e4a5651 (patch)
tree5c962e7f6c6f1e8f17b612bb4c144ec610abfd8e /block/blk-core.c
parent8fa72d234da9b6b473bbb1f74d533663e4996e6b (diff)
block: Rename queue dead flag
QUEUE_FLAG_DEAD is used to indicate that queuing new requests must stop. After this flag has been set queue draining starts. However, during the queue draining phase it is still safe to invoke the queue's request_fn, so QUEUE_FLAG_DYING is a better name for this flag. This patch has been generated by running the following command over the kernel source tree: git grep -lEw 'blk_queue_dead|QUEUE_FLAG_DEAD' | xargs sed -i.tmp -e 's/blk_queue_dead/blk_queue_dying/g' \ -e 's/QUEUE_FLAG_DEAD/QUEUE_FLAG_DYING/g'; \ sed -i.tmp -e "s/QUEUE_FLAG_DYING$(printf \\t)*5/QUEUE_FLAG_DYING$(printf \\t)5/g" \ include/linux/blkdev.h; \ sed -i.tmp -e 's/ DEAD/ DYING/g' -e 's/dead queue/a dying queue/' \ -e 's/Dead queue/A dying queue/' block/blk-core.c Signed-off-by: Bart Van Assche <bvanassche@acm.org> Acked-by: Tejun Heo <tj@kernel.org> Cc: James Bottomley <JBottomley@Parallels.com> Cc: Mike Christie <michaelc@cs.wisc.edu> Cc: Jens Axboe <axboe@kernel.dk> Cc: Chanho Min <chanho.min@lge.com> Signed-off-by: Jens Axboe <axboe@kernel.dk>
Diffstat (limited to 'block/blk-core.c')
-rw-r--r--block/blk-core.c26
1 files changed, 13 insertions, 13 deletions
diff --git a/block/blk-core.c b/block/blk-core.c
index ee0e5cafa859..1a95272cca50 100644
--- a/block/blk-core.c
+++ b/block/blk-core.c
@@ -473,20 +473,20 @@ EXPORT_SYMBOL_GPL(blk_queue_bypass_end);
473 * blk_cleanup_queue - shutdown a request queue 473 * blk_cleanup_queue - shutdown a request queue
474 * @q: request queue to shutdown 474 * @q: request queue to shutdown
475 * 475 *
476 * Mark @q DEAD, drain all pending requests, destroy and put it. All 476 * Mark @q DYING, drain all pending requests, destroy and put it. All
477 * future requests will be failed immediately with -ENODEV. 477 * future requests will be failed immediately with -ENODEV.
478 */ 478 */
479void blk_cleanup_queue(struct request_queue *q) 479void blk_cleanup_queue(struct request_queue *q)
480{ 480{
481 spinlock_t *lock = q->queue_lock; 481 spinlock_t *lock = q->queue_lock;
482 482
483 /* mark @q DEAD, no new request or merges will be allowed afterwards */ 483 /* mark @q DYING, no new request or merges will be allowed afterwards */
484 mutex_lock(&q->sysfs_lock); 484 mutex_lock(&q->sysfs_lock);
485 queue_flag_set_unlocked(QUEUE_FLAG_DEAD, q); 485 queue_flag_set_unlocked(QUEUE_FLAG_DYING, q);
486 spin_lock_irq(lock); 486 spin_lock_irq(lock);
487 487
488 /* 488 /*
489 * Dead queue is permanently in bypass mode till released. Note 489 * A dying queue is permanently in bypass mode till released. Note
490 * that, unlike blk_queue_bypass_start(), we aren't performing 490 * that, unlike blk_queue_bypass_start(), we aren't performing
491 * synchronize_rcu() after entering bypass mode to avoid the delay 491 * synchronize_rcu() after entering bypass mode to avoid the delay
492 * as some drivers create and destroy a lot of queues while 492 * as some drivers create and destroy a lot of queues while
@@ -499,11 +499,11 @@ void blk_cleanup_queue(struct request_queue *q)
499 499
500 queue_flag_set(QUEUE_FLAG_NOMERGES, q); 500 queue_flag_set(QUEUE_FLAG_NOMERGES, q);
501 queue_flag_set(QUEUE_FLAG_NOXMERGES, q); 501 queue_flag_set(QUEUE_FLAG_NOXMERGES, q);
502 queue_flag_set(QUEUE_FLAG_DEAD, q); 502 queue_flag_set(QUEUE_FLAG_DYING, q);
503 spin_unlock_irq(lock); 503 spin_unlock_irq(lock);
504 mutex_unlock(&q->sysfs_lock); 504 mutex_unlock(&q->sysfs_lock);
505 505
506 /* drain all requests queued before DEAD marking */ 506 /* drain all requests queued before DYING marking */
507 blk_drain_queue(q, true); 507 blk_drain_queue(q, true);
508 508
509 /* @q won't process any more request, flush async actions */ 509 /* @q won't process any more request, flush async actions */
@@ -716,7 +716,7 @@ EXPORT_SYMBOL(blk_init_allocated_queue);
716 716
717bool blk_get_queue(struct request_queue *q) 717bool blk_get_queue(struct request_queue *q)
718{ 718{
719 if (likely(!blk_queue_dead(q))) { 719 if (likely(!blk_queue_dying(q))) {
720 __blk_get_queue(q); 720 __blk_get_queue(q);
721 return true; 721 return true;
722 } 722 }
@@ -870,7 +870,7 @@ static struct request *__get_request(struct request_list *rl, int rw_flags,
870 const bool is_sync = rw_is_sync(rw_flags) != 0; 870 const bool is_sync = rw_is_sync(rw_flags) != 0;
871 int may_queue; 871 int may_queue;
872 872
873 if (unlikely(blk_queue_dead(q))) 873 if (unlikely(blk_queue_dying(q)))
874 return NULL; 874 return NULL;
875 875
876 may_queue = elv_may_queue(q, rw_flags); 876 may_queue = elv_may_queue(q, rw_flags);
@@ -1050,7 +1050,7 @@ retry:
1050 if (rq) 1050 if (rq)
1051 return rq; 1051 return rq;
1052 1052
1053 if (!(gfp_mask & __GFP_WAIT) || unlikely(blk_queue_dead(q))) { 1053 if (!(gfp_mask & __GFP_WAIT) || unlikely(blk_queue_dying(q))) {
1054 blk_put_rl(rl); 1054 blk_put_rl(rl);
1055 return NULL; 1055 return NULL;
1056 } 1056 }
@@ -1910,7 +1910,7 @@ int blk_insert_cloned_request(struct request_queue *q, struct request *rq)
1910 return -EIO; 1910 return -EIO;
1911 1911
1912 spin_lock_irqsave(q->queue_lock, flags); 1912 spin_lock_irqsave(q->queue_lock, flags);
1913 if (unlikely(blk_queue_dead(q))) { 1913 if (unlikely(blk_queue_dying(q))) {
1914 spin_unlock_irqrestore(q->queue_lock, flags); 1914 spin_unlock_irqrestore(q->queue_lock, flags);
1915 return -ENODEV; 1915 return -ENODEV;
1916 } 1916 }
@@ -2885,9 +2885,9 @@ static void queue_unplugged(struct request_queue *q, unsigned int depth,
2885 trace_block_unplug(q, depth, !from_schedule); 2885 trace_block_unplug(q, depth, !from_schedule);
2886 2886
2887 /* 2887 /*
2888 * Don't mess with dead queue. 2888 * Don't mess with a dying queue.
2889 */ 2889 */
2890 if (unlikely(blk_queue_dead(q))) { 2890 if (unlikely(blk_queue_dying(q))) {
2891 spin_unlock(q->queue_lock); 2891 spin_unlock(q->queue_lock);
2892 return; 2892 return;
2893 } 2893 }
@@ -2996,7 +2996,7 @@ void blk_flush_plug_list(struct blk_plug *plug, bool from_schedule)
2996 /* 2996 /*
2997 * Short-circuit if @q is dead 2997 * Short-circuit if @q is dead
2998 */ 2998 */
2999 if (unlikely(blk_queue_dead(q))) { 2999 if (unlikely(blk_queue_dying(q))) {
3000 __blk_end_request_all(rq, -ENODEV); 3000 __blk_end_request_all(rq, -ENODEV);
3001 continue; 3001 continue;
3002 } 3002 }