summaryrefslogtreecommitdiffstats
path: root/block/blk-wbt.c
diff options
context:
space:
mode:
authorBart Van Assche <Bart.VanAssche@sandisk.com>2017-01-02 11:48:47 -0500
committerJens Axboe <axboe@fb.com>2017-01-02 11:48:47 -0500
commit9eca53508a157c6b6fdb6e06796902cf8a920d29 (patch)
treeae395ad008f1a44e6134d46f12407cad47c19112 /block/blk-wbt.c
parentf2e0a0b292682dd94274d6793d76656b41526147 (diff)
block: Avoid that sparse complains about context imbalance in __wbt_wait()
This patch does not change any functionality. Fixes: e34cbd307477 ("blk-wbt: add general throttling mechanism") Signed-off-by: Bart Van Assche <bart.vanassche@sandisk.com> Signed-off-by: Jens Axboe <axboe@fb.com>
Diffstat (limited to 'block/blk-wbt.c')
-rw-r--r--block/blk-wbt.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/block/blk-wbt.c b/block/blk-wbt.c
index fd28c2806406..f0a9c07b4c7a 100644
--- a/block/blk-wbt.c
+++ b/block/blk-wbt.c
@@ -544,6 +544,8 @@ static inline bool may_queue(struct rq_wb *rwb, struct rq_wait *rqw,
544 * the timer to kick off queuing again. 544 * the timer to kick off queuing again.
545 */ 545 */
546static void __wbt_wait(struct rq_wb *rwb, unsigned long rw, spinlock_t *lock) 546static void __wbt_wait(struct rq_wb *rwb, unsigned long rw, spinlock_t *lock)
547 __releases(lock)
548 __acquires(lock)
547{ 549{
548 struct rq_wait *rqw = get_rq_wait(rwb, current_is_kswapd()); 550 struct rq_wait *rqw = get_rq_wait(rwb, current_is_kswapd());
549 DEFINE_WAIT(wait); 551 DEFINE_WAIT(wait);
@@ -558,13 +560,12 @@ static void __wbt_wait(struct rq_wb *rwb, unsigned long rw, spinlock_t *lock)
558 if (may_queue(rwb, rqw, &wait, rw)) 560 if (may_queue(rwb, rqw, &wait, rw))
559 break; 561 break;
560 562
561 if (lock) 563 if (lock) {
562 spin_unlock_irq(lock); 564 spin_unlock_irq(lock);
563 565 io_schedule();
564 io_schedule();
565
566 if (lock)
567 spin_lock_irq(lock); 566 spin_lock_irq(lock);
567 } else
568 io_schedule();
568 } while (1); 569 } while (1);
569 570
570 finish_wait(&rqw->wait, &wait); 571 finish_wait(&rqw->wait, &wait);