direct-io: only use block polling if explicitly requested
Signed-off-by: Christoph Hellwig <hch@lst.de> Reviewed-by: Stephen Bates <stephen.bates@pmcs.com> Tested-by: Stephen Bates <stephen.bates@pmcs.com> Acked-by: Jeff Moyer <jmoyer@redhat.com> Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
This commit is contained in:
parent
97be7ebe53
commit
c43c83a294
|
@ -445,7 +445,8 @@ static struct bio *dio_await_one(struct dio *dio)
|
||||||
__set_current_state(TASK_UNINTERRUPTIBLE);
|
__set_current_state(TASK_UNINTERRUPTIBLE);
|
||||||
dio->waiter = current;
|
dio->waiter = current;
|
||||||
spin_unlock_irqrestore(&dio->bio_lock, flags);
|
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();
|
io_schedule();
|
||||||
/* wake up sets us TASK_RUNNING */
|
/* wake up sets us TASK_RUNNING */
|
||||||
spin_lock_irqsave(&dio->bio_lock, flags);
|
spin_lock_irqsave(&dio->bio_lock, flags);
|
||||||
|
|
Loading…
Reference in New Issue