|
@@ -445,7 +445,8 @@ static struct bio *dio_await_one(struct dio *dio)
|
|
|
__set_current_state(TASK_UNINTERRUPTIBLE);
|
|
|
dio->waiter = current;
|
|
|
spin_unlock_irqrestore(&dio->bio_lock, flags);
|
|
|
- if (!blk_poll(bdev_get_queue(dio->bio_bdev), dio->bio_cookie))
|
|
|
+ if (!(dio->iocb->ki_flags & IOCB_HIPRI) ||
|
|
|
+ !blk_poll(bdev_get_queue(dio->bio_bdev), dio->bio_cookie))
|
|
|
io_schedule();
|
|
|
/* wake up sets us TASK_RUNNING */
|
|
|
spin_lock_irqsave(&dio->bio_lock, flags);
|